![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Formularios creados por referencia
Llamo a un formulario con:
Código:
FormaClase:=TFormClass(GetClass('TExp'+inttostr((Sender as TToolButton).Tag)));
if FormaClase<>nil then
begin
Forma:=FormaClase.Create(Self);
Forma.ShowModal;
Forma.Free;
end;
|
|
#2
|
||||
|
||||
|
Si las variables, son comunes entre todos tus formularios, puedes crear TAbstractForm o similar, del que hereden todos estos formularios y en lugar de hacer el cast a esta clase. Otra opción es usar RTTI, te recomiendo buscar en el histórico del foro.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#3
|
||||
|
||||
|
También podes simplemente hacer un cast de la forma... o tener una variable del tipo adecuado..
y hacer luego: Código:
Forma.Metodo; Forma.Variable := Valor; o bien (Forma as TForm1).Metodo; (Forma as TForm1).Variable := Valor; ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#4
|
||||
|
||||
|
Cita:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#5
|
||||
|
||||
|
Cita:
// Saludos |
|
#6
|
||||
|
||||
|
Creo que depende de las habilidades del programador. Si son dos o tres clases, y el programador no sabe, no puede o no tiene tiempo de crear una clase base de la que hereden las demás... puede adoptar esta solución (que no es la ideal, por supuesto).
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#7
|
|||
|
|||
|
Código:
Forma.Metodo; Forma.Variable := Valor; o bien (Forma as TForm1).Metodo; (Forma as TForm1).Variable := Valor; El caso es que los formulario llamados son diferentes entre ellos y necesito pasarles tres variables, que siempre son las mismas y de recuperar el valor que tienen despues del showmodal. |
|
#8
|
||||
|
||||
|
Cita:
Código:
var
MiObjeto: OleVariant;
begin
{Prueba esto, vas a ver que compila}
MiObjeto.MandarFruta;
end;
¿Cómo haría lo tuyo? Código:
unit MiCustomForm;
type
TMiCustom = class(TForm)
published
property Propiedad1....
property Propiedad2....
end;
Código:
TForm1 = class(TMiCustom) .. [quote=cervexa]Forma.Metodo; Forma.Variable := Valor; [quote] Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#9
|
||||
|
||||
|
Holap,
en este hilo http://www.clubdelphi.com/foros/showthread.php?t=7307 explico como hacer algo muy parecido mediante interfaces... espero te sirva ![]()
__________________
E pur si muove |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|