como abrir um form dentro de outro form

Delphi

11/08/2012

Bem, estou com um problema. Tenho uma tela de login e uma tela principal...

O login sendo válido o usuário passa para a tela principal chamada frmmenu...nela será feito cadastros, consultas e relatórios..

O que eu gostaria de fazer na verdade era abrir dentro do frmmenu todas as demais telas..eu uso um panel no frmmenu.

Tipo, sei que tem a questão do MDI e tal..só que o form de login não é a tela principal e precisa ser aberta antes do frmmenu onde serão
abertos os demais forms. Tem outras maneiras, abrir só um showmodal e pronto, mas é um trabalho de TCC e tem que ficar bom..
Uso delphi 7 e mysql com banco de dados...

Testei algumas formas encontrados em tópicos mas não consegui fazer...

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, StdCtrls;

type
Tfrmprincipal = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
btnconfirmar: TButton;
btnsair: TButton;
procedure btnconfirmarClick(Sender: TObject);
procedure btnsairClick(Sender: TObject);
private
{ Private declarations }

public
{ Public declarations }
end;

var
frmprincipal: Tfrmprincipal;

implementation

uses Unit3, Unit2;

{$R *.dfm}

procedure Tfrmprincipal.btnconfirmarClick(Sender: TObject);
begin
if (edit1.Text = ) then //Verifica se o campo Usuário foi preenchido

begin

Messagedlg(O campo Usuário deve ser preenchido!, mtInformation, [mbOk], 0);

if edit1.CanFocus then

edit1.SetFocus;

Exit;

end;

if (edit2.Text = ) then //Verifica se o campo Senha foi preenchido

begin

Messagedlg(O campo Senha deve ser preenchido!, mtInformation, [mbOk], 0);

if edit2.CanFocus then

edit2.SetFocus;

Exit;

end
else
begin
with DM.ADOQuery do
begin
Active:=False;
SQL.Clear;
SQL.Add(Select * from administrador where usuario =:log and senha =:snh);
Parameters.ParamByName(log).Value:=edit1.Text;
Parameters.ParamByName(snh).Value:=edit2.Text;
Active:=True;
//================================================
if RecordCount 0 then
frmmenu.ShowModal
else
ShowMessage(Login ou Senha incorretos, verifique!);
end;
end;
end;

procedure Tfrmprincipal.btnsairClick(Sender: TObject);
begin
close;
end;

end.


obrigado a todos pela ajuda.
Mauricio Nicoli

Mauricio Nicoli

Curtidas 0

Respostas

Bruno Leandro

Bruno Leandro

11/08/2012

nao entendi bem o seu pedido

mas voce quer chamar um formulario em algum momento, se for isso voce pode usar assim

var
Form: TForm;
begin
Form := TForm.Create( nil );
Form.ShowModal;
FreeAndNil( Form );
end;
GOSTEI 0
Deivison Melo

Deivison Melo

11/08/2012

Você está desenvolvendo utilizando formulários MDI? Caso não, MDI não te atende?
GOSTEI 0
POSTAR