![]() |
![]() |
| 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 |
|
#3
|
||||
|
||||
|
Prueba la siguiente función:
Código:
Function Get_Frm(pNombreFrm:String):Tform;
Var i:Integer;
vFrm:Tform;
Begin
Result:=nil;
For i:=0 to Screen.FormCount-1 do
Begin
vFrm:=Screen.Forms[i];
if UpperCase(vFrm.ClassName)=UpperCase('T'+pNombreFrm) then
Begin
Result:=vFrm;
Exit;
end;//if
end; //For i
end;
Para probar como funciona, debes hacer lo siguiente: Código:
procedure TForm1.Button1Click(Sender: TObject);
var Elform:Tform;
begin
Elform:=Get_Frm('Form2');
if ElForm=nil then
showmessage('No se puede mostrar el formulario')
else
ElForm.Show;
end;
si lo quisieras hacer con formularios dinámicos, Lo ideal seria hacer algo como: Código:
Código erróneo....
pNombreFrm:='Form3';
vFrm:=TFormClass('T'+pNombreFrm).Create(Application);
(vFrm as TFormclass('T'+pNombreFrm)).showmodal;
if Uppercase(pNombreFrm)='FRMPRINCIPAL' then begin frmPrincipal:=TFrmPrincipal.create(self); frmPrincipal.show; end; ..etc... Saludos.... |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|