![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
¿Y bien? ¿Qué ha sido de esto?
Creo saber cómo resolverlo aunque me desconcierta lo del GetMem pues con mi "solución" bastaría cualquier función/método que no altere el valor de X. // Saludos |
|
#2
|
||||
|
||||
|
Cita:
Ya lo hice, la segunda pista fue: Cita:
![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#3
|
||||
|
||||
|
Ya suponía yo que en el aviso en sí de la segunda pista estaba la pista. Sólo que a mi no me dice nada ni la primera, ni la segunda, ni la tercera, por lo que supongo que son caminos distintos. La solución que vislumbro consiste sencillamente en acceder al campo privado X. Cosa que es posible si se conoce el código fuente de la clase, que me parece es una de las premisas. Aunque no es una solución elegante y no la usaría en un programa
![]() Agrego: Pensándolo bien, quizá sí esté en el mismo camino pues algo de lo que mencionas sí lo uso. // Saludos |
|
#4
|
||||
|
||||
|
Pues coincido con Roman al decir que "consiste sencillamente en acceder al campo privado X". Y aquí se me encendió la lucecita y pregunto:
¿Se ha compilado con información de depuración o sin ella? ¡Zasca! Seguro que no se lo esperaba, maestro González. ![]()
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi! - BAScript - Multi Language Scriptable Development Environment |
|
#5
|
||||
|
||||
|
Cita:
![]() Cita:
Cita:
![]() Es de tres letras, pero no está escrita con letras. ![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#6
|
||||
|
||||
|
Ja, ja, ja. Y mira que mis ojos pasaron por la solución más de una vez. Gracias Al, estuvo interesante
![]() // Saludos |
|
#7
|
||||
|
||||
|
Me dejaste pior
![]() Cita:
![]() Voy a tener que llamar al área 51 porque parece que se fugaron de allí. ¿Cómo le hacen para saber tantas cosas? ![]() Evidentemente hay cosas que mi cabeza no logra entender y captar porque no tiene la preparación... pero esto... ¡se me hace que es más fácil encontrar la teoría unificadora de la física! Supongo que en una semana van a dar conocer la solución ¿no? Porque me han dejado intrigado.Saludos, |
|
#8
|
||||
|
||||
|
He de decir que lo de las siglas sigo sin entenderlo, aunque el término maleable tampoco me convence mucho.
Lo que es cierto es que la respuesta es mucho más sencilla de lo que parece, tal como lo comentó Al desde un principio. También es elegante y segura de usar, no como mi segunda solución, que voy a esbozar para que los demás no tomen el camino equivocado: Los campos en un objeto se acomodan de manera similar a un registro con un primer campo oculto que es la referencia a la clase a la que pertenece el objeto. Los campos aparecen en el orden en que están declarados y cada objeto guarda los campos de su clase y los de todas sus ancestras. Así pues, el método "sucio" de acceder al campo X pasa por saber el offset o desplazamiento del campo en el objeto y acceder libremente:
Calcular dicho offset no es tan sencillo pues hay que tomar en cuenta el alineamiento que menciona Al. Sin embargo, puede hacerse examinando el código fuente de la clase. Si la clase tiene ancestros nos podemos ayudar con AncestroDeClaseDeObj.InstanceSize, ya que InstanceSize sí toma en cuenta el alineamiento. Aún así, hay que examinar los campos de la clase final hasta llegar a X. // Saludos |
|
#9
|
||||
|
||||
|
¡¡¡ ¿¿¿Ya lo han descubierto??? !!!
![]() Yo es que no he entendido las pistas, que parecen encriptadas ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#10
|
||||
|
||||
|
Ahora que leo lo comentado por Román veo que mi idea estaba bien encaminada, por eso dije:
Cita:
![]() ![]() ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Dudas sobre Delphi 2011 | cmm07 | Varios | 9 | 15-01-2011 14:48:06 |
| Lazarus Vs. Delphi 2011 (2012? 2014?) | gatosoft | Debates | 33 | 14-08-2010 21:12:05 |
| Delphi 2011 (Fulcrum) | heroe | Noticias | 11 | 15-07-2010 10:00:21 |
| delphi 2011 | JXJ | Noticias | 13 | 03-04-2010 00:42:34 |
|