Cita:
Empezado por cervexa
Esto lo he probado, pero no funciona, da error de compilación. Solo se puede acceder a las variables propias de TForm como Caption, Hint, Tag...
|
Eso es correcto, por eso te he sugerido anteriormente que todos tus forms hereden de una clase común que tengan estas variables / métodos. Lo que tu quieres hacer, solo se puede hacer bajo el concepto de "late binding" o "dynamic binding", por ejemplo:
Código:
var
MiObjeto: OleVariant;
begin
{Prueba esto, vas a ver que compila}
MiObjeto.MandarFruta;
end;
En algunos lenguajes, por ejemplo VB y sus derivados, esta es una práctica común,
por suerte en Delphi, esto solo es válido para ciertas clases. Los Automation objects soportan tanto early binding (en tiempo de compilación) como late binding (en tiempo de ejecución, evaluará la existencia del método).
¿Cómo haría lo tuyo?
Código:
unit MiCustomForm;
type
TMiCustom = class(TForm)
published
property Propiedad1....
property Propiedad2....
end;
Luego los formularios heredarían de este
Código:
TForm1 = class(TMiCustom)
..
Y en este código, Forma sería del tipo TMiCustom (o haría la pregunta si es de TMiCustom)
[quote=cervexa]Forma.Metodo;
Forma.Variable := Valor;
[quote]
Saludos!