PDA

Ver la Versión Completa : Como crear un Inspector de Objetos?


eirud20
21-04-2004, 02:19:30
Saludos a todos...

¿Donde puedo encontrar infamación para crear un Inspector de Objetos parecido al de Delphi?. Donde se explique como es su funcionamiento, para tener una idea y poder crear uno.

Muchas gracias...

roman
21-04-2004, 02:52:31
Las componentes Jedi (http://www.delphi-jedi.org/) incluyen un ispector de objectos TJVInspector e incluye el código fuente que puedes estudiar.

Yo nunca he hecho uno pero si lo fuera a hacer supongo que comenzaría estudiando RTTI que es lo que hace funcionar al inspector de objetos de Delphi. RTTI te sirve para poder leer las propiedades publicadas (published) de un objeto. Tendrás quizá que recorrer la lista de componentes de un formulario (propiedad Components) y usar RTTI para listar todas las propiedades publicadas de cada componente así como su tipo de datos y otra información.

// Saludos

delphi.com.ar
21-04-2004, 04:39:33
Te cuento que hace mucho, mucho tiempo hice uno, como tu dices, en aquel momento no había ninguno en la web, hoy si los hay, pero bueno… uno tiene su orgullo .
El componente básicamente hereda de un TTreeView y tiene nodos propietarios, con mas propiedades, por ejemplo el tipo de editor de propiedades y el valor de la propiedad, los nodos propietarios fueron el primer problema ya que puedes agregar nodos de cualquier tipo heredados de TTreeNode pero el TTreeView maneja todas sus colecciones como TTreeNode, o sea que queda poco transparente para el usuario final. El segundo gran problema es que no pude acceder a los editores de propiedades registrados en Delphi, en aquel momento envié un mail a Borland y me respondieron que ellos no publican el código del IDE y que no me iban a dar soporte sobre el mismo, así que este componente solo soporta algunos editores estándar que tuve que desarrollar.

Bueno, vale aclarar que fue hace mucho y puede que algún concepto se me haya enturbiado, pero si quieres verlo funcionar, por ejemplo se usa en el PeepMachine que puedes bajar de mi página, o mañana te subo un ejemplo.

PD: Si utilizaba RTTI como bien comenta Román.

Saludos!

roman
21-04-2004, 05:26:03
Pues vaya trabajo enorme que hiciste. Mis respetos, en serio.

Sí que me gustaría ver el ejemplo. Ahora, ya sabes, no se puede entrar a tu página pero lo haré mañana.

Un saludo

delphi.com.ar
21-04-2004, 22:59:30
Sí que me gustaría ver el ejemplo. Ahora, ya sabes, no se puede entrar a tu página pero lo haré mañana.
Bueno, me ha costado pero lo he subido, pueden bajar un ejemplo de la parte de componentes de mi página (Espero que lo hagan). Tuve que rearmar el paquete EditSuite y no pude subir todos los archivos porque no me deja el servidor, espero que esten los necesarios. Me costó enviarlo porque como no lo he usado lo tenía abandonado, y los componentes que este utiliza se han actualizado y el Inspector perdió funcionalidad. Tengan en cuenta que no es un componente probado, es mas, fueron mis primeros pasos en Delphi por lo que no creo que esté muy prolijamente desarrollado, y carece de potencialidad.

Info:
Se trata de dos componente, el primero TTreeInspector, antes se llamaba TInspector pero en Delphi 7 apareció una clase homónima, este componente sirve para armar un Inspector "a mano" con las propiedades o datos que queramos ver. El segundo componente es el TObjectInspector, en la propiedad Inspect se asigna la clase persistente que será inspeccionada y el componente automáticamente carga las propiedades

Problemas Conocidos:
- Flashea cuando se mueve el divisor vertical
- No esta mostrando el Address de los métodos
- El ObjectInspector es de solo lectura
- No soporta todos los tipos de datos (Prop TypeKinds)
- Cuando esta ReadOnly = True deja modificar los datos si se despliega el combo

roman
21-04-2004, 23:06:16
Muchas gracias, ya lo bajo ahora mismo y prometo verlo pronto.

Una pregunta: el editsuit7.rar no existe, ¿el editsuit6.zip me sirve en D7?

// Gracias

delphi.com.ar
22-04-2004, 15:22:42
Una pregunta: el editsuit7.rar no existe, ¿el editsuit6.zip me sirve en D7?No creo que funcione.. fíjate ahora, he renombrado el link


Saludos!

roman
22-04-2004, 16:43:47
No creo que funcione.. fíjate ahora, he renombrado el link


Ya lo bajé gracias. Al rato pruebo.

// Saludos

roman
22-04-2004, 23:04:46
Guau!!

Ya pude instalarlo y mis respetos nuevamente. Se ve que hay un enorme trabajo detrás. El componente se ve idéntico al de Delphi y, salvo por los editores de propiedades que antes mencionaste, se comporta exactamente igual.

Me pongo de pie

// Saludos

delphi.com.ar
23-04-2004, 06:13:04
:D... Me alegro que te haya gustado. Te cuento que tooodo el comportamiento, no es igual al de Delphi, recuerdo que intenté que se pueda "AutoScrollear" como el de Delphi (si uno hace click en un item y baja o sube, el inspector se mueve solo) y no lo terminé, otro detalle es que es muy customizable, en este caso se ve igual al de Delphi, pero jugando con las propiedades puedes lograr que se vea igual al de VB u otros lenguajes.

Saludos, y gracias!