![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
En la creación del formulario la hago por referencia, ya que se llama muchos formularios distintos y con distintas comprobaciones, entonces las comprobaciones las tengo que hacer en el formulario hijo.
|
#2
|
||||
|
||||
mira el procedimiento de llamada:
Código:
if Sender.ClassType = TToolButton then FormaClase:=TExpFormClass(GetClass('TExp'+inttostr((Sender as TToolButton).Tag))) else if Sender.ClassType = TMenuItem then FormaClase:=TExpFormClass(GetClass('TExp'+inttostr((Sender as TMenuItem).Tag))) else Exit; if FormaClase<>nil then begin Forma:=FormaClase.Create(Self); Forma.codigo:=0; Forma.Expte:=QueryDia.fieldbyName('EXPDIA_CODIGO').AsInt64; Forma.Modo:='A'; Forma.Part:=Part; Forma.Tipo:='EXP'+Part+QueryDia.fieldbyName('EXPDIA_TIPO').AsString; Forma.ExpAno:=EAno.Text; Forma.ExpNum:=ENumero.Text; Forma.Idioma:=Idioma; Forma.Dni:=EDni.Text; Forma.DniDup:=EDniDup.Text; Forma.ShowModal; |
#3
|
|||
|
|||
Bien, si es así, podrías mirar de usar un truquillo con el evento OnActivate
A ver ahora que tal ![]() |
#4
|
||||
|
||||
Gracias 1000.
|
#5
|
||||
|
||||
Lo mismo pero con interfaces
Wop!
Aunque el truco que te comenta Cadetill funciona a las 100 maravillas, aquí te dejo otra manera de hacerlo. Para mi es mejor, porque se usa un método explícito de la clase en lugar del evento OnActivate. Cuando busques en el proyecto tras dos años, te será mucho más fácil de seguir. La ides es definir una interfaz que contenga un solo método:
El form que queremos que pueda "autovalidarse" antes de mostrarse, lo declaramos implementando la interfaz:
Ahora solo nos queda controlar la validación desde el form "padre":
Esto mismo lo podrías hacer sin interfaz, simplemente creando el método Valida en el form. La potencia que te da este mecanismo aparece cuando necesitas que varios forms tengan este comportamiento y no necesariamente tenga que derivar de una misma clase. Puedes crear un procedimiento para crear los forms:
__________________
E pur si muove |
![]() |
|
|
![]() |
|