2012-02-25 27 views
5

que tiene algunos controles virtuales, que es una parte de un sistema de diseñador que he hecho. Ellos imitan a los propios componentes de delphi, excepto que son completamente dibujados por el propietario. El problema al que me enfrento es que, dado que mi sistema de propiedad es algo diferente de Delphi ordinario, no puedo usar un inspector RTTI para editar las propiedades.Delphi no rtti inspector de

¿Alguien sabe acerca de un inspector que se ve y actúa como el inspector delphi normal, pero que me permite definir las propiedades por código?

Y si es posible, uno que me permite definir enumeraciones:

with edInspector.Items.add('align') do 
Begin 
    Options.add('alLeft',ftord(TMyAlign.azLeft)); 
    Options.add('alTop',ord(TMyAlign.azTop)); 
    Options.add('alRight',ord(TMyAlign.azRight)); 
    Options.add('alBottom',ord(TMyAlign.azBottom)); 
    Options.add('alClient',ord(TMyAlign.azClient)); 
end; 

y complejos tipos:

with edInspector.Items.add('font') do 
Begin 
    subitems.add('name',dtString).value:=def_FontName; 
    subitems.add('size',dtInteger).value:=def_fontSize; 
    subitems.add('color',dtColor).Value:=def_fontColor; 
end; 
+2

¿Qué quiere decir con "mi sistema de propiedad es algo diferente de Delphi ordinario"? ¿Conoce la diferencia entre las propiedades públicas y publicadas? –

+0

He he, yes. Im encuestas de propiedades desde un sistema externo, lo que significa que están almacenadas en pares nombre/valor en objetos personalizados. Entonces no son visibles desde RTTI normal, tengo que obtenerlos/configurarlos manualmente –

+0

Ok, si todo lo que es diferente es su mecanismo de persistencia, use las propiedades publicadas declaradas con "False almacenado" y la construcción en el inspector de objetos para editar el tiempo de diseño. Si necesita ayuda con su mecanismo de persistencia (es decir, convertir texto en valores que puede asignar a las propiedades normalmente tipadas), observe cómo TReader y TFiler hacen el trabajo. –

Respuesta

2

Dale Inspex intentarlo. Es genial.

http://www.raize.com/DevTools/Inspex/Default.asp

Puede añadir propiedades dinámicamente, y obtendrá los editores de propiedades para la mayoría de los tipos comunes.

Puede comportarse como el inspector de objetos Delphi (le permite editar conjuntos, si agrega varios objetos, detecta qué propiedades son las mismas, y oculta las demás, y hace lo mismo con los valores de las propiedades).

Se muestra propiedades en una estructura de árbol como si hay múltiples niveles. Puede completarlo fácilmente agregando cualquier TObject, mediante una cadena o agregando las propiedades una por una.

Captura de pantalla:

Screenshot

+0

se ve bien, pero no es gratis. Debería haber indicado que me gustaría una alternativa gratuita. –

0

Con Delphi Runtime Inspector, usted será capaz de ver información del objeto en tiempo de ejecución.

+0

Sin duda debe adaptarlo para cumplir con sus requisitos. – menjaraz

+0

No quiero información de tiempo de ejecución. Quiero editar mis propias estructuras que defino por código en tiempo de ejecución. Pero no quiero inspeccionar objetos "reales". –

Cuestiones relacionadas