PDA

Ver la Versión Completa : Procedimiento para llamar formas


Luis
09-03-2005, 23:11:22
Hola foro, pretendo crear un solo procedimiento con parametro para mostrar varias formas de acuerdo a la selección de un listado, la idea seria la siguiente:

begin
...
VisualizaForma(NombreForma);
...
end;


procedure TfrmReportes.VisualizaForma(Forma : Tform);
begin
if not Assigned(Forma) then
Forma := TForma.Create(Application);
Forma.Showmodal;
end;

El usuario selecciona de un listado la forma, entoces se guarda el nombre en una variable NombreForma que es de tipo String y se pasa como parametro al procedimiento, pero al compilar el error es por los tipos de datos diferentes.

Que debo hacer ?

:D

sercornejov
10-03-2005, 00:49:21
Hola.

Lo primero que debes hacer es colocar el tipo de error que te sale, la plataforma de desarrollo, la versión de delphi.

Saludos

Luis
10-03-2005, 01:20:08
Creo que en este caso no tiene que ver la plataforma de desarrollo y la versión de Delphi, sin embargo te comento que estoy trabajando con cliente-servidor y utilizo Delphi 7

El error recuerdo que traducido significa "Tipos de datos diferentes".

:confused:

roman
10-03-2005, 01:49:19
En resumen lo que necesitas es cómo poder crear un formulario a partir de su nombre. Una respuesta está en el hilo http://www.clubdelphi.com/foros/showthread.php?t=19194 que aunque fue abierto para formularios MDI en realidad aplica por igual a cualquier formulario.

// Saludos

Luis
10-03-2005, 15:55:04
Muchas gracias roman, voy a implementarlo.

:p

samantha jones
10-03-2005, 17:44:26
procedure myshowmodal(aClass:TclassForm; aForm:TForm);
begin
if not assigned(aForm) then
aForm:=aClass.Create(Self);
try
aForm.Showmodal;
finally
freeandnil(aForm);
end;
end;

Espero te sirva

rastafarey
10-03-2005, 21:49:48
procedure ShowForma(TF:TClassForm);
Begin
With TF.Create(Self) Do Try
ShowModal;
Finally
Free;
End;
End;

argami
11-03-2005, 14:29:43
otra opcion

Procedure AbreForm(var Form:TForm; FormClase: TClassForm; AShowModal:Boolean = False);
begin
if not Assigned(Form) then
begin
Form := FormClase.Create(application);
if AShowModal then
Form.ShowModal
else
Form.Show;
end else
begin
Form.bringtofront;
end;
end;