FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como trabajar con los ensamblados en Delphi
Mi objetivo es dado un objeto(cualquiera), obtener sus properties(o métodos, o atributos), tomar la que deseo y extraer el valor, también en algún momento setearle un valor, se como hacerlo en .NET, pero en Delphi ni de cerca le he picado a la solución del problema.
using System.Reflection; Persona p=new Persona(); p.Nombre="lolo"; p.Edad=100; //Esta entidad podría ser cualquier objeto que pase como parámetro, //puse esta como ejemplo Type typeInfo = p.GetType(); foreach (PropertyInfo meto in typeInfo.GetProperties()) { if (meto.Name=="Nombre") { string nombre=meto.GetValue(p,null).ToString(); //le pregunto el nombre meto.SetValue(p,"lili",null); //le seteo un nuevo nombre } } Help, alguien sabe como hacer lo antes expuesto en Delphi??? |
#2
|
||||
|
||||
¡Hola a todos!
En Delphi para Win32 puedes utilizar las funciones GetPropList, GetPropInfo, GetPropValue y SetPropValue de la unidad TypInfo (Delphi 7 y otras versiones). Considera que estas funciones sólo trabajan con las propiedades publicadas (published). Si te surgen más dudas, no dejes de externarlas. He trabajado con la unidad TypInfo en algunas ocasiones. Un abrazo seteado. Al González. |
#3
|
|||
|
|||
Solucion a ensamblados en Delphi, una de ellas
Esta fue la que use, la que me haz indicado la voy a probar en pocos minutos.
Gracias. procedure ActivateControls(SetTo: string; const ControlsToChange: array of TComponent); var I: integer; PropInfo: PPropInfo; begin for I := Low(ControlsToChange) to High(ControlsToChange) do //recorro el array de componentes begin PropInfo := GetPropInfo(ControlsToChange[i].ClassInfo, 'Text'); //obtengo el property info de la propiedad 'Text' if Assigned(PropInfo) then //devuelve nil en caso de que no exista begin form1.caption:=GetStrProp(ControlsToChange[i], PropInfo); //obtengo el valor de la propiedad 'Text' SetStrProp(ControlsToChange[i], PropInfo, SetTo); //seteo el nuevo valor end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin ActivateControls('Deac', [Edit1, Edit2, Edit3]); //setear el texto 'Deac' a los 3 edit end; procedure TForm1.Button2Click(Sender: TObject); begin ActivateControls('Act', [Edit1, Edit2, Edit3]); //setear el texto 'Act' a los 3 edit end; |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como configuro MySQL para trabajar en delphi? | desve | MySQL | 7 | 23-11-2006 21:04:59 |
Cómo trabajar con Rave Reports en Delphi 7 | bellota | Varios | 1 | 03-06-2006 05:05:16 |
Como Trabajar los listview en delphi 7 | Shidalis | Varios | 9 | 19-07-2005 17:03:49 |
Como Trabajar en Grupo Con Delphi 7 | carlosmoralesm | Varios | 7 | 30-03-2004 03:24:10 |
¿Como Trabajar Con Bases Dbase IV en Delphi 7? | josral | Conexión con bases de datos | 2 | 14-08-2003 16:40:33 |
|