como chamar forms genericamente?

Delphi

04/05/2004

Vixiii acho q ficou meio estranho o assunto...

Bom aqui eu explico melhor.. eu tenho um prog.. e nele uma tela principal d ond vou chamar todos os outros forms... q naum estaum no autocreate

queria fazer um procedure assim
CriaForm(nomedoform);

aqui eu so passaria o nome do form e conseguiria criar ele...

p naum ter q fazer isso aqui toda hora
try
nome := TNome.create(self);
nome.showmodal;
except
nome.release;
nome := nil;
end;//try

Aguardo as ideias..
Obrigado


Osocram

Osocram

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

04/05/2004

procedure CriarForm(Form: TForm)
begin
   if form = nil then
     form := Tform.create
    else
     form.Show;
end;

// e na hora de chamar..

CriarForm(frmCadastroClientes);



GOSTEI 0
Osocram

Osocram

04/05/2004

[quote:36bd37abb8=´Lucas Alves Silva´]
procedure CriarForm(Form: TForm)
begin
   if form = nil then
     form := Tform.create
    else
     form.Show;
end;

// e na hora de chamar..

CriarForm(frmCadastroClientes);
[/quote:36bd37abb8]

Lucas eu jah tentei isso.... mas ele cria um form zerado... e eu quero q ele crie um forme q jah exista mas naum esta no autocreate.

O prob eh esse.... eles naum saum do tipo TForm... eles saum descendentes dele.. por ex. TFrmCadProjetos, TFrmCadProgramadores...

Tem outra ideia?


GOSTEI 0
Lucas Silva

Lucas Silva

04/05/2004

A função é esta mesmo...

CriarForm(TFrmCadProgramadores);



GOSTEI 0
Beppe

Beppe

04/05/2004

É preciso passar uma class-reference, não uma instância de form.

De acordo com os comandos do 1o. post:
procedure MostrarForm(Form: TFormClass) 
begin 
  with Form.Create(nil) do
  try
    ShowModal;
  finally
    Free;
  end;
end;



GOSTEI 0
Osocram

Osocram

04/05/2004

[quote:b58d716df8=´Lucas Alves Silva´]A função é esta mesmo...

CriarForm(TFrmCadProgramadores);
[/quote:b58d716df8]

Mas ae cai no prob q eu to encontrando.... esse TFrmCadProgramadores naum eh compativel c o TForm.

Bom pelo menos eu naum consegui fazer dar certo.


GOSTEI 0
Fer_nanda

Fer_nanda

04/05/2004

Mas ae cai no prob q eu to encontrando.... esse TFrmCadProgramadores naum eh compativel c o TForm. Bom pelo menos eu naum consegui fazer dar certo.


Eu fiz aqui um teste rapidinho e funcionou... vc deve adcionar esse seus formulários q deseja criar na uses do form q está chamndo (form pricncipla), vc fez isso?


GOSTEI 0
Osocram

Osocram

04/05/2004

Fernanda...
Fiz isso sim... mas aqui esta dando incompatibilidade de classes.. pois um eh TForm e o outro eh TFrm... (eh uma subclasse d TForm eu acho)


GOSTEI 0
Osocram

Osocram

04/05/2004

Vixiii
Foi mauz galera.... erro meu..

Eu li errado...

(nome:TformClass) eu tinha visto (nome:TForm) q era como eu tinha feito...

Mau meu...
deu certo agora
:D
valeu a forca...


GOSTEI 0
POSTAR