Procedimento que cria Form automaticamente
Olá a todos,
Queria fazer um procedimento generico em que mandava o nome do form e ele criava o form e excutava, ou seja substituia o código abaixo:
Arranjei este código mas, agora cria adpta-lo podem dar uma ajudinha.
Queria fazer um procedimento generico em que mandava o nome do form e ele criava o form e excutava, ou seja substituia o código abaixo:
if frConsultaDoc = nil then frConsultaDoc:= TfrConsultaDoc.Create(Application); frConsultaDoc.WindowState := wsNormal; frConsultaDoc.Show;
Arranjei este código mas, agora cria adpta-lo podem dar uma ajudinha.
function TfrMain.AddMenu(Pai: TMenuItem; Nome: String; Formulario: String): TMenuItem; var Item: TMenuItem; Comando: TMethod; begin Item := TMenuItem.Create(Pai); Item.Caption := Nome; Comando.Data := Pointer(self); Comando.Code := Self.MethodAddress(FiltraAcento(Nome)+´1Click´); Item.OnClick := TNotifyEvent(Comando); Item.Name := Formulario;
Porty
Curtidas 0
Respostas
Gatoledo
26/08/2005
Se eu entendi bem o que vc quer pode fazer da seguinte maneira:
Para utilizar a função basta chama-la da seguinte maneira:
CriaForm(FoCadastroClientes, Self);
Ou então:
CriaForm(FoCadastroClientes, Self, wsMaximized);
Espero ter ajudado.
Gabriel[/code]
procedure TForm1.CriaForm(WForm: TForm; AOwner: TComponent; WWindowState: TWindowState = wsNormal); begin if Not Assigned(WForm) then begin WForm := WForm.Create(AOwner); WForm.WindowState := WWindowState; end ; WForm.Show; end;
Para utilizar a função basta chama-la da seguinte maneira:
CriaForm(FoCadastroClientes, Self);
Ou então:
CriaForm(FoCadastroClientes, Self, wsMaximized);
Espero ter ajudado.
Gabriel[/code]
GOSTEI 0
Porty
26/08/2005
Se eu entendi bem o que vc quer pode fazer da seguinte maneira:
Para utilizar a função basta chama-la da seguinte maneira:
CriaForm(FoCadastroClientes, Self);
Ou então:
CriaForm(FoCadastroClientes, Self, wsMaximized);
Espero ter ajudado.
Gabriel[/code]
procedure TForm1.CriaForm(WForm: TForm; AOwner: TComponent; WWindowState: TWindowState = wsNormal); begin if Not Assigned(WForm) then begin WForm := WForm.Create(AOwner); WForm.WindowState := WWindowState; end ; WForm.Show; end;
Obrigado pela dica, mas eu queria era que o nome do form fosse passado por String, ou seja
CriaForm(´FoCadastroClientes´, Self);
GOSTEI 0
Luizito
26/08/2005
se vc quiser pode usar assim !!!
procedure TForm1.CriaFormulario(Classe: String);
begin
with TForm(FindClass(Classe)).Create(Self) do
try
ShowModal
finally
Free
end;
end;
mas assim vc tem que registrar as classes antes de usar no initialization de cada form!
Se vc quiser passar o nome do formulario é so usar FindComponent(NOME_FORMUARIO) !!!!
Se nao ficou claro é so perguntar de novo !
Abraço !
procedure TForm1.CriaFormulario(Classe: String);
begin
with TForm(FindClass(Classe)).Create(Self) do
try
ShowModal
finally
Free
end;
end;
mas assim vc tem que registrar as classes antes de usar no initialization de cada form!
Se vc quiser passar o nome do formulario é so usar FindComponent(NOME_FORMUARIO) !!!!
Se nao ficou claro é so perguntar de novo !
Abraço !
GOSTEI 0
Luizito
26/08/2005
Errei é assim ! Esqueci do class!!
procedure TForm1.CriaFormulario(Classe: String);
begin
with TFormClass( FindClass(Classe) ).Create(Self) do
try
ShowModal
finally
Free
end;
end;
procedure TForm1.CriaFormulario(Classe: String);
begin
with TFormClass( FindClass(Classe) ).Create(Self) do
try
ShowModal
finally
Free
end;
end;
GOSTEI 0
Porty
26/08/2005
Olá de novo,
A minha aplicação é MDI, como posso registar os Forms, será que não exite alguma coisa mais simple do que estar a registar as classes.
mais ou menos assim:
A minha aplicação é MDI, como posso registar os Forms, será que não exite alguma coisa mais simple do que estar a registar as classes.
mais ou menos assim:
with TFormClass( FindForm(´frmenus´) ).Create(Self) do try ShowModal finally Free end;
GOSTEI 0
Enigma
26/08/2005
Olá de novo,
A minha aplicação é MDI, como posso registar os Forms, será que não exite alguma coisa mais simple do que estar a registar as classes.
mais ou menos assim:
with TFormClass( FindForm(´frmenus´) ).Create(Self) do try ShowModal finally Free end;
Cara usa a função FindComponent:
Application.FindComponent(´frmenus´)
GOSTEI 0
Porty
26/08/2005
O pior é como usei assim mas dá erro:
Chamo assim
O problema é acha o TFrmenus para usar pois se forçar o código assim já funciona
procedure TFrPrincipal.CriaForm(WForm: TForm; AOwner: TComponent); var i : integer; begin WForm := TFormClass( Application.FindComponent(´frmenus´)).Create(application); WForm.WindowState := wsnormal; WForm.Show; End;
Chamo assim
CriaForm(frmenus , Self);
O problema é acha o TFrmenus para usar pois se forçar o código assim já funciona
procedure TFrPrincipal.CriaForm(WForm: TForm; AOwner: TComponent); var i : integer; begin WForm := TFrmenus.Create(application); WForm.WindowState := wsnormal; WForm.Show;
GOSTEI 0