![]() |
llamar a un formulario
Como hago para llamar a un formulario.
El problema es que yo quiero llamar a un formulario por me dio de un String Ejemplo var oForm1 : string; oform1 tiene el nombre del formulario q deseo llamar q esta en una tabla oform1.show; Como lo hagoo Gracias |
Hola
Proba.. definir el nombre del form no como un string sino como un objeto, en el ejemplo el form1 llama al form dos en el evento click del buttom 1, crea dos forms, y pegale esto.. espero que te sirva form2 seri ael nombre del form porsupuesto procedure TForm1.Button1Click(Sender: TObject); var f:tobject; begin f:=form2; tform(f).ShowModal; end; end. |
Prueba la siguiente función:
Código:
Function Get_Frm(pNombreFrm:String):Tform; Para probar como funciona, debes hacer lo siguiente: Código:
procedure TForm1.Button1Click(Sender: TObject); si lo quisieras hacer con formularios dinámicos, Lo ideal seria hacer algo como: Código:
if Uppercase(pNombreFrm)='FRMPRINCIPAL' then begin frmPrincipal:=TFrmPrincipal.create(self); frmPrincipal.show; end; ..etc... Saludos.... |
Michel:
Puedes crear un objeto a partir del nombre de su clase usando la función GetClass en clases previamente registradas con el procedimiento RegisterClass. Para el caso específico de formularios podrías hacer lo siguiente: En la sección initialization de cada formulario que desees crear dinámicamente por medio del ombre de su clase registras ésta: Código:
unit Unit2; Código:
function CreaFormulario(Owner: TComponent; Nombre: String): TForm; Código:
var Quizá te convenga revisar el siguiente hilo http://www.clubdelphi.com/foros/arch...hlight=fabrica así como las referencias que allí se indican que tratan este tema con más detalle. En particular quizá encuentres útil el concepto de "fábrica de clases". // Saludos |
La franja horaria es GMT +2. Ahora son las 00:39:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi