Erro ao sair do sistema
Tenho um sistema de login e form Principal de modelo. Adaptei para fazer logoff. Quando logo com admin, tudo bem, funciona, ao fazer logoff e logar com outro usuário dá um erro quando clico na opção Sair. Segue abaixo da tela de erro Códigos de Login e Logoff, Obrigado
Código do botão Ok do Login:
procedure TFrmLogin.BtnOKClick(Sender: TObject);
var
ValorSenha:TstringField;
begin
if not DM.tableusers.findkey([ednome.text]) then
begin
pnlMensagem.Caption:='Login Recusado, Usuário Desconhecido...';
inc(Contador);
if contador=4 then
frmPrincipal.close;
ednome.setfocus;
Exit;
end;
ValorSenha:=DM.tableUsers.findfield('Senha') as tStringfield;
if valorsenha.value<>edsenha.text then
begin
pnlMensagem.Caption:='Login Recusado, Senha Inválida...';
inc(Contador);
if Contador=4 then
frmPrincipal.close;
edsenha.setfocus;
Exit;
end;
frmPrincipal.label2.Caption := frmLogin.EdNome.Text;
frmPrincipal.enabled:=true;
frmlogin.release;
end;
Código do Menu Logoff:
procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
frmPrincipal.Release;
Application.CreateForm(TFrmLogin,FrmLogin);
Application.CreateForm(TfrmPrincipal,frmPrincipal);
frmPrincipal.Show;
// DMFinan.IBDatabaseFinan.Open;
// DMFinan.TBUsuario.Active:=True;
FrmLogin.ShowModal;
end;
Frederico Brigatte***
Respostas
Wilson Junior
16/06/2011
if frmPrincipal <> nil then frmPrincipal.Release ;
Pois este erro significa que você está tentando acessar algum componente que não foi criado ainda ou que já foi e criado e destruído.
Espero ter colaborado.
Rafael Mattos
16/06/2011
Nigro
16/06/2011
Frederico Brigatte***
16/06/2011
Qual código?
Frederico Brigatte***
16/06/2011
if frmPrincipal <> nil then frmPrincipal.Release ;
Pois este erro significa que você está tentando acessar algum componente que não foi criado ainda ou que já foi e criado e destruído.
Espero ter colaborado.
Onde coloco esse código?
Wilson Junior
16/06/2011
Wilson Junior
16/06/2011
Frederico Brigatte***
16/06/2011
if frmPrincipal <> nil then frmPrincipal.Release ;
Pois este erro significa que você está tentando acessar algum componente que não foi criado ainda ou que já foi e criado e destruído.
Espero ter colaborado.
Onde coloco esse código?
Coloquei assim:
procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
if frmPrincipal <> nil then
frmPrincipal.Release
;
Application.CreateForm(TFrmLogin,FrmLogin);
Application.CreateForm(TfrmPrincipal,frmPrincipal);
frmPrincipal.Show;
FrmLogin.ShowModal;
end;
Ainda da erro ao sair quando troca o usuário.
Rafael Mattos
16/06/2011
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
Frederico Brigatte***
16/06/2011
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
Frederico Brigatte***
16/06/2011
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
Frederico Brigatte***
16/06/2011
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
Frederico Brigatte***
16/06/2011
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
-> (Application.Terminate;)
end;
A unit Login é essa:
unit UnitLogin;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls,db;
type TFrmLogin = class(TForm)
Image1: TImage;
iblnome: TLabel;
iblsenha: TLabel;
EdNome: TEdit;
EdSenha: TEdit;
BtnOK: TButton;
BtnCancelar: TButton;
Label1: TLabel;
PnlMensagem: TPanel;
procedure BtnCancelarClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmLogin: TFrmLogin;
implementation
uses UnitPrincipal, UnitDM;
var Contador:integer;
{$R *.DFM}
procedure TFrmLogin.BtnCancelarClick(Sender: TObject);
begin
frmPrincipal.close;
end;
procedure TFrmLogin.FormShow(Sender: TObject);
begin
edNome.setfocus;
end;
procedure TFrmLogin.BtnOKClick(Sender: TObject);
var ValorSenha:TstringField;
begin if not DM.tableusers.findkey([ednome.text]) then
begin pnlMensagem.Caption:='Login Recusado, Usuário Desconhecido...';
inc(Contador); if contador=4 then
frmPrincipal.close;
ednome.setfocus;
Exit;
end;
ValorSenha:=DM.tableUsers.findfield('Senha') as tStringfield;
if valorsenha.value<>edsenha.text then begin
pnlMensagem.Caption:='Login Recusado, Senha Inválida...';
inc(Contador); if Contador=4 then
frmPrincipal.close;
edsenha.setfocus;
Exit;
end;
frmPrincipal.label2.Caption := frmLogin.EdNome.Text;
frmPrincipal.enabled:=true;
frmlogin.release;
end;
end.
A unit Principal é essa:
unit UnitPrincipal;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;
type
TFrmPrincipal = class(TForm) MainMenu1: TMainMenu;
Cadastro1: TMenuItem;
Consulta1: TMenuItem;
Relatorio1: TMenuItem;
Movimento1: TMenuItem;
Senhas1: TMenuItem;
Configurar1: TMenuItem;
Sair1: TMenuItem;
SenhasUsuarios1: TMenuItem;
HabilitarSenhas1: TMenuItem;
mnuLogoff: TMenuItem;
Label1: TLabel;
Label2: TLabel;
procedure Sair1Click(Sender: TObject);
procedure SenhasUsuarios1Click(Sender: TObject);
procedure mnuLogoffClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var FrmPrincipal: TFrmPrincipal;
implementation
uses UnitSenhas, UnitLogin, UnitDM;
{$R *.DFM}
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
Application.Terminate;
end;
procedure TFrmPrincipal.SenhasUsuarios1Click(Sender: TObject);
begin
frmsenhas:=tfrmsenhas.create(self);
frmsenhas.show;
end;
procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
//frmPrincipal.Release;
Application.CreateForm(TFrmLogin,FrmLogin);
Application.CreateForm(TfrmPrincipal,frmPrincipal);
frmPrincipal.Show;
// DMFinan.IBDatabaseFinan.Open;
// DMFinan.TBUsuario.Active:=True;
FrmLogin.ShowModal;
end;
end.
A unit do Projeto é essa:
program Parte2;
uses Forms, UnitPrincipal in 'UnitPrincipal.pas' , UnitLogin in 'UnitLogin.pas' , UnitDM in 'UnitDM.pas' {DM: TDataModule}, UnitSenhas in 'UnitSenhas.pas' ;
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TFrmPrincipal, FrmPrincipal);
Application.CreateForm(TDM, DM);
Application.Run;
end.
Não sei onde dá o erro.
Não sei pq ficou assim
Frederico Brigatte***
16/06/2011
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
-> (Application.Terminate;)
end;
A unit Login é essa:
unit UnitLogin;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls,db;
type TFrmLogin = class(TForm)
Image1: TImage;
iblnome: TLabel;
iblsenha: TLabel;
EdNome: TEdit;
EdSenha: TEdit;
BtnOK: TButton;
BtnCancelar: TButton;
Label1: TLabel;
PnlMensagem: TPanel;
procedure BtnCancelarClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmLogin: TFrmLogin;
implementation
uses UnitPrincipal, UnitDM;
var Contador:integer;
{$R *.DFM}
procedure TFrmLogin.BtnCancelarClick(Sender: TObject);
begin
frmPrincipal.close;
end;
procedure TFrmLogin.FormShow(Sender: TObject);
begin
edNome.setfocus;
end;
procedure TFrmLogin.BtnOKClick(Sender: TObject);
var ValorSenha:TstringField;
begin if not DM.tableusers.findkey([ednome.text]) then
begin pnlMensagem.Caption:='Login Recusado, Usuário Desconhecido...';
inc(Contador); if contador=4 then
frmPrincipal.close;
ednome.setfocus;
Exit;
end;
ValorSenha:=DM.tableUsers.findfield('Senha') as tStringfield;
if valorsenha.value<>edsenha.text then begin
pnlMensagem.Caption:='Login Recusado, Senha Inválida...';
inc(Contador); if Contador=4 then
frmPrincipal.close;
edsenha.setfocus;
Exit;
end;
frmPrincipal.label2.Caption := frmLogin.EdNome.Text;
frmPrincipal.enabled:=true;
frmlogin.release;
end;
end.
A unit Principal é essa:
unit UnitPrincipal;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;
type
TFrmPrincipal = class(TForm) MainMenu1: TMainMenu;
Cadastro1: TMenuItem;
Consulta1: TMenuItem;
Relatorio1: TMenuItem;
Movimento1: TMenuItem;
Senhas1: TMenuItem;
Configurar1: TMenuItem;
Sair1: TMenuItem;
SenhasUsuarios1: TMenuItem;
HabilitarSenhas1: TMenuItem;
mnuLogoff: TMenuItem;
Label1: TLabel;
Label2: TLabel;
procedure Sair1Click(Sender: TObject);
procedure SenhasUsuarios1Click(Sender: TObject);
procedure mnuLogoffClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var FrmPrincipal: TFrmPrincipal;
implementation
uses UnitSenhas, UnitLogin, UnitDM;
{$R *.DFM}
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
Application.Terminate;
end;
procedure TFrmPrincipal.SenhasUsuarios1Click(Sender: TObject);
begin
frmsenhas:=tfrmsenhas.create(self);
frmsenhas.show;
end;
procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
//frmPrincipal.Release;
Application.CreateForm(TFrmLogin,FrmLogin);
Application.CreateForm(TfrmPrincipal,frmPrincipal);
frmPrincipal.Show;
// DMFinan.IBDatabaseFinan.Open;
// DMFinan.TBUsuario.Active:=True;
FrmLogin.ShowModal;
end;
end.
A unit do Projeto é essa:
program Parte2;
uses Forms, UnitPrincipal in 'UnitPrincipal.pas' , UnitLogin in 'UnitLogin.pas' , UnitDM in 'UnitDM.pas' {DM: TDataModule}, UnitSenhas in 'UnitSenhas.pas' ;
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TFrmPrincipal, FrmPrincipal);
Application.CreateForm(TDM, DM);
Application.Run;
end.
Não sei onde dá o erro.
Não sei pq ficou assim
A listagem é essa:
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
-> (Application.Terminate;)
end;
A unit Login é essa:
unit UnitLogin;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls,db;
type TFrmLogin = class(TForm)
Image1: TImage;
iblnome: TLabel;
iblsenha: TLabel;
EdNome: TEdit;
EdSenha: TEdit;
BtnOK: TButton;
BtnCancelar: TButton;
Label1: TLabel;
PnlMensagem: TPanel;
procedure BtnCancelarClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmLogin: TFrmLogin;
implementation
uses UnitPrincipal, UnitDM;
var Contador:integer;
{$R *.DFM}
procedure TFrmLogin.BtnCancelarClick(Sender: TObject);
begin
frmPrincipal.close;
end;
procedure TFrmLogin.FormShow(Sender: TObject);
begin
edNome.setfocus;
end;
procedure TFrmLogin.BtnOKClick(Sender: TObject);
var ValorSenha:TstringField;
begin if not DM.tableusers.findkey([ednome.text]) then
begin pnlMensagem.Caption:='Login Recusado, Usuário Desconhecido...';
inc(Contador); if contador=4 then
frmPrincipal.close;
ednome.setfocus;
Exit;
end;
ValorSenha:=DM.tableUsers.findfield('Senha') as tStringfield;
if valorsenha.value<>edsenha.text then begin
pnlMensagem.Caption:='Login Recusado, Senha Inválida...';
inc(Contador); if Contador=4 then
frmPrincipal.close;
edsenha.setfocus;
Exit;
end;
frmPrincipal.label2.Caption := frmLogin.EdNome.Text;
frmPrincipal.enabled:=true;
frmlogin.release;
end;
end.
A unit Principal é essa:
unit UnitPrincipal;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;
type
TFrmPrincipal = class(TForm) MainMenu1: TMainMenu;
Cadastro1: TMenuItem;
Consulta1: TMenuItem;
Relatorio1: TMenuItem;
Movimento1: TMenuItem;
Senhas1: TMenuItem;
Configurar1: TMenuItem;
Sair1: TMenuItem;
SenhasUsuarios1: TMenuItem;
HabilitarSenhas1: TMenuItem;
mnuLogoff: TMenuItem;
Label1: TLabel;
Label2: TLabel;
procedure Sair1Click(Sender: TObject);
procedure SenhasUsuarios1Click(Sender: TObject);
procedure mnuLogoffClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var FrmPrincipal: TFrmPrincipal;
implementation
uses UnitSenhas, UnitLogin, UnitDM;
{$R *.DFM}
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
Application.Terminate;
end;
procedure TFrmPrincipal.SenhasUsuarios1Click(Sender: TObject);
begin
frmsenhas:=tfrmsenhas.create(self);
frmsenhas.show;
end;
procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
//frmPrincipal.Release;
Application.CreateForm(TFrmLogin,FrmLogin);
Application.CreateForm(TfrmPrincipal,frmPrincipal);
frmPrincipal.Show;
// DMFinan.IBDatabaseFinan.Open;
// DMFinan.TBUsuario.Active:=True;
FrmLogin.ShowModal;
end;
end.
A unit do Projeto é essa:
program Parte2;
uses Forms, UnitPrincipal in 'UnitPrincipal.pas' , UnitLogin in 'UnitLogin.pas' , UnitDM in 'UnitDM.pas' {DM: TDataModule}, UnitSenhas in 'UnitSenhas.pas' ;
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TFrmPrincipal, FrmPrincipal);
Application.CreateForm(TDM, DM);
Application.Run;
end.
Não sei onde tá dando erro.
Frederico Brigatte***
16/06/2011
--------------------------------------------------------------------------------
Blog: http://mundodoprogramador.wordpress.com/
MSN: rafmattos@hotmail.com
Twitter: _rafmattos
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
-> (Application.Terminate;)
end;
A unit Login é essa:
unit UnitLogin;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls,db;
type TFrmLogin = class(TForm)
Image1: TImage;
iblnome: TLabel;
iblsenha: TLabel;
EdNome: TEdit;
EdSenha: TEdit;
BtnOK: TButton;
BtnCancelar: TButton;
Label1: TLabel;
PnlMensagem: TPanel;
procedure BtnCancelarClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmLogin: TFrmLogin;
implementation
uses UnitPrincipal, UnitDM;
var Contador:integer;
{$R *.DFM}
procedure TFrmLogin.BtnCancelarClick(Sender: TObject);
begin
frmPrincipal.close;
end;
procedure TFrmLogin.FormShow(Sender: TObject);
begin
edNome.setfocus;
end;
procedure TFrmLogin.BtnOKClick(Sender: TObject);
var ValorSenha:TstringField;
begin if not DM.tableusers.findkey([ednome.text]) then
begin pnlMensagem.Caption:='Login Recusado, Usuário Desconhecido...';
inc(Contador); if contador=4 then
frmPrincipal.close;
ednome.setfocus;
Exit;
end;
ValorSenha:=DM.tableUsers.findfield('Senha') as tStringfield;
if valorsenha.value<>edsenha.text then begin
pnlMensagem.Caption:='Login Recusado, Senha Inválida...';
inc(Contador); if Contador=4 then
frmPrincipal.close;
edsenha.setfocus;
Exit;
end;
frmPrincipal.label2.Caption := frmLogin.EdNome.Text;
frmPrincipal.enabled:=true;
frmlogin.release;
end;
end.
A unit Principal é essa:
unit UnitPrincipal;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;
type
TFrmPrincipal = class(TForm) MainMenu1: TMainMenu;
Cadastro1: TMenuItem;
Consulta1: TMenuItem;
Relatorio1: TMenuItem;
Movimento1: TMenuItem;
Senhas1: TMenuItem;
Configurar1: TMenuItem;
Sair1: TMenuItem;
SenhasUsuarios1: TMenuItem;
HabilitarSenhas1: TMenuItem;
mnuLogoff: TMenuItem;
Label1: TLabel;
Label2: TLabel;
procedure Sair1Click(Sender: TObject);
procedure SenhasUsuarios1Click(Sender: TObject);
procedure mnuLogoffClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var FrmPrincipal: TFrmPrincipal;
implementation
uses UnitSenhas, UnitLogin, UnitDM;
{$R *.DFM}
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
Application.Terminate;
end;
procedure TFrmPrincipal.SenhasUsuarios1Click(Sender: TObject);
begin
frmsenhas:=tfrmsenhas.create(self);
frmsenhas.show;
end;
procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
//frmPrincipal.Release;
Application.CreateForm(TFrmLogin,FrmLogin);
Application.CreateForm(TfrmPrincipal,frmPrincipal);
frmPrincipal.Show;
// DMFinan.IBDatabaseFinan.Open;
// DMFinan.TBUsuario.Active:=True;
FrmLogin.ShowModal;
end;
end.
A unit do Projeto é essa:
program Parte2;
uses Forms, UnitPrincipal in 'UnitPrincipal.pas' , UnitLogin in 'UnitLogin.pas' , UnitDM in 'UnitDM.pas' {DM: TDataModule}, UnitSenhas in 'UnitSenhas.pas' ;
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TFrmPrincipal, FrmPrincipal);
Application.CreateForm(TDM, DM);
Application.Run;
end.
Não sei onde dá o erro.
Não sei pq ficou assim
A listagem é essa:
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
-> (Application.Terminate;)
end;
A unit Login é essa:
unit UnitLogin;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls,db;
type TFrmLogin = class(TForm)
Image1: TImage;
iblnome: TLabel;
iblsenha: TLabel;
EdNome: TEdit;
EdSenha: TEdit;
BtnOK: TButton;
BtnCancelar: TButton;
Label1: TLabel;
PnlMensagem: TPanel;
procedure BtnCancelarClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmLogin: TFrmLogin;
implementation
uses UnitPrincipal, UnitDM;
var Contador:integer;
{$R *.DFM}
procedure TFrmLogin.BtnCancelarClick(Sender: TObject);
begin
frmPrincipal.close;
end;
procedure TFrmLogin.FormShow(Sender: TObject);
begin
edNome.setfocus;
end;
procedure TFrmLogin.BtnOKClick(Sender: TObject);
var ValorSenha:TstringField;
begin if not DM.tableusers.findkey([ednome.text]) then
begin pnlMensagem.Caption:='Login Recusado, Usuário Desconhecido...';
inc(Contador); if contador=4 then
frmPrincipal.close;
ednome.setfocus;
Exit;
end;
ValorSenha:=DM.tableUsers.findfield('Senha') as tStringfield;
if valorsenha.value<>edsenha.text then begin
pnlMensagem.Caption:='Login Recusado, Senha Inválida...';
inc(Contador); if Contador=4 then
frmPrincipal.close;
edsenha.setfocus;
Exit;
end;
frmPrincipal.label2.Caption := frmLogin.EdNome.Text;
frmPrincipal.enabled:=true;
frmlogin.release;
end;
end.
A unit Principal é essa:
unit UnitPrincipal;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls;
type
TFrmPrincipal = class(TForm) MainMenu1: TMainMenu;
Cadastro1: TMenuItem;
Consulta1: TMenuItem;
Relatorio1: TMenuItem;
Movimento1: TMenuItem;
Senhas1: TMenuItem;
Configurar1: TMenuItem;
Sair1: TMenuItem;
SenhasUsuarios1: TMenuItem;
HabilitarSenhas1: TMenuItem;
mnuLogoff: TMenuItem;
Label1: TLabel;
Label2: TLabel;
procedure Sair1Click(Sender: TObject);
procedure SenhasUsuarios1Click(Sender: TObject);
procedure mnuLogoffClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var FrmPrincipal: TFrmPrincipal;
implementation
uses UnitSenhas, UnitLogin, UnitDM;
{$R *.DFM}
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
Application.Terminate;
end;
procedure TFrmPrincipal.SenhasUsuarios1Click(Sender: TObject);
begin
frmsenhas:=tfrmsenhas.create(self);
frmsenhas.show;
end;
procedure TFrmPrincipal.mnuLogoffClick(Sender: TObject);
begin
//frmPrincipal.Release;
Application.CreateForm(TFrmLogin,FrmLogin);
Application.CreateForm(TfrmPrincipal,frmPrincipal);
frmPrincipal.Show;
// DMFinan.IBDatabaseFinan.Open;
// DMFinan.TBUsuario.Active:=True;
FrmLogin.ShowModal;
end;
end.
A unit do Projeto é essa:
program Parte2;
uses Forms, UnitPrincipal in 'UnitPrincipal.pas' , UnitLogin in 'UnitLogin.pas' , UnitDM in 'UnitDM.pas' {DM: TDataModule}, UnitSenhas in 'UnitSenhas.pas' ;
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TFrmPrincipal, FrmPrincipal);
Application.CreateForm(TDM, DM);
Application.Run;
end.
Não sei onde tá dando erro.
Alguém me ajuda com esse erro, to travado nisso.
Wilson Junior
16/06/2011
Aguardo retorno.
Frederico Brigatte***
16/06/2011
Aguardo retorno.
Wilson,
O erro dá quando eu clico no botão Sair quando executo logoff.
Frederico Brigatte***
16/06/2011
Aguardo retorno.
Wilson,
O erro dá quando eu clico no botão Sair quando executo logoff.
Quando executa o sistema e clica no botão Sair, o sistema encerra normalmente. Quando faço logoff e entro com outro usuário, dá o erro quando clica no botão Sair.
Wilson Junior
16/06/2011
begin FreeAndNil( DM ); Application.Termine; end;
Espero ter colaborado.
Frederico Brigatte***
16/06/2011
begin FreeAndNil( DM ); Application.Termine; end;
Espero ter colaborado.
Apaga o que tem lá e adiciona esse, ou somente adicionar.
Wilson Junior
16/06/2011
Frederico Brigatte***
16/06/2011
Ok, vou testar e posto o resultado, ok?
Obrigado por hora.
Frederico Brigatte***
16/06/2011
Ok, vou testar e posto o resultado, ok?
Obrigado por hora.
Ainda esta dando erro.
Frederico Brigatte***
16/06/2011
Ok, vou testar e posto o resultado, ok?
Obrigado por hora.
Ainda esta dando erro.
Wilson, o erro esta dando no end; Dei um breakpoint na linha FreeAndNil( DM ); e quando vai no end; da erro.
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
// frmPrincipal.Release;
// frmLogin.Release;
// DM.TableUsers.Close;
// frmPrincipal.Destroy;
FreeAndNil( DM );
Application.Terminate;
// Application.Terminate;
end;
Emerson Nascimento
16/06/2011
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
frmPrincipal.Close;
end;
Frederico Brigatte***
16/06/2011
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
frmPrincipal.Close;
end;
Adiciona essa linha?
Continua o erro. Não sei mais...... Helllllllllllllllllllllllllllllllllllp!!!!!!!!!!!!
Frederico Brigatte***
16/06/2011
procedure TFrmPrincipal.Sair1Click(Sender: TObject);
begin
frmPrincipal.Close;
end;
Adiciona essa linha?
Continua o erro. Não sei mais...... Helllllllllllllllllllllllllllllllllllp!!!!!!!!!!!!
Eliel Martins
16/06/2011
Se quiser pode mandar no meu e-mail (eliel_martins@hotmail.com) que eu vejo para você.
Espero ter ajudado.
Eliel G. Martins
Frederico Brigatte***
16/06/2011
Se quiser pode mandar no meu e-mail (eliel_martins@hotmail.com) que eu vejo para você.
Espero ter ajudado.
Eliel G. Martins
Frederico Brigatte***
16/06/2011
Se quiser pode mandar no meu e-mail (eliel_martins@hotmail.com) que eu vejo para você.
Espero ter ajudado.
Eliel G. Martins
José
16/06/2011