spider man Postado Agosto 15, 2012 Denunciar Share Postado Agosto 15, 2012 Olá pessoal, desde já agradeço a todos que puderem ou tentarem me ajudar.. uso delphi 7Tenho um form login o qual chamo frmprincipal ok O sistema não está pronto ainda mas está rodando sem erros até aqui.. A questão é que quando, no form login, o código de verificação é valido o sistema abre outro form, o qual chamo formmenu. Quando eu clico em sair no frmmenu o frmlogin ainda está lá em execução. Sei que preciso usar os comandos try e finally, só que não sei onde colocar isso aqui. Ou se os amigos souberem outra forma também agradeço. Segue a unit do formlogin.. 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Agosto 15, 2012 Denunciar Share Postado Agosto 15, 2012 Quando eu clico em sair no frmmenu o frmlogin ainda está lá em execução.assim que fechar o frmmenu, deve tambem fechar o frmlogin frmlogin.close; abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 djfarinha Postado Setembro 4, 2012 Denunciar Share Postado Setembro 4, 2012 Remova o form login do AUTO_CREATE_FORMS, e no evento onclose do form login coloque : Action := caFree; Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
spider man
Olá pessoal, desde já agradeço a todos que puderem ou tentarem me ajudar..
uso delphi 7
Tenho um form login o qual chamo frmprincipal ok
O sistema não está pronto ainda mas está rodando sem erros até aqui..
A questão é que quando, no form login, o código de verificação é valido
o sistema abre outro form, o qual chamo formmenu. Quando eu clico em
sair no frmmenu o frmlogin ainda está lá em execução. Sei que preciso usar
os comandos try e finally, só que não sei onde colocar isso aqui. Ou se os amigos souberem outra forma também agradeço. Segue a unit do formlogin..
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.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.