Formularios creados por referencia
Llamo a un formulario con:
Código:
FormaClase:=TFormClass(GetClass('TExp'+inttostr((Sender as TToolButton).Tag))); |
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! |
También podes simplemente hacer un cast de la forma... o tener una variable del tipo adecuado..
y hacer luego: Código:
Forma.Metodo; ;) |
Cita:
|
Cita:
// Saludos |
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. ;) |
Cita:
// Saludos |
Código:
Forma.Metodo; 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. |
Cita:
Código:
var ¿Cómo haría lo tuyo? Código:
unit MiCustomForm; Código:
[quote=cervexa]Forma.Metodo; Forma.Variable := Valor; [quote] Saludos! |
Holap,
en este hilo http://www.clubdelphi.com/foros/showthread.php?t=7307 explico como hacer algo muy parecido mediante interfaces... espero te sirva ;) |
A pesar de la sabiduría que me supone Román mi ignorancia es maxima. Despues de intentar todo lo que se me sugiere, no consigo aprobechar vuestros consejos.
He llegado hasta aqui: He creado un formulario y lo he añadido al proyecto: Código:
type Código:
uses Código:
procedure TExpedientes.ToolButton1Click(Sender: TObject); |
Sería bueno saber porqué no compila.. ¿Cuál es el error?
PD: Te recomiedo crear el tipo de referencia de clase propio: Código:
TExpFormClass = class of TExpTramites; |
Código:
TExpFormClass = class of TExpTramites; |
Para hacer eso, tienes que usar herencia visual.
File \ New \ (Buscar la paleta con el nombre del proyecto) \ (Buscar el Formulario ) Saludos! |
Gracias por la ayuda.
|
La franja horaria es GMT +2. Ahora son las 05:47:06. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi