Problemas ao fechar aplicação
04/12/2009
0
Login.ShowModal;
Login.Destroy;" Se eu digito o usuario e senha tudo funciona perfeitamente inclusive as validações e nível de acesso, mas se clico no botão cancelar (que deveria fechar as telas) que tem o código "formPrincipal.close;" ele dá um erro que não está encontrando um campo "-------------------------
SCI - Sistema Comercial Integrado
---------------------------
QueryLogin: Field 'cadclifor' not found.
---------------------------
OK
---------------------------
" E trava a aplicação completamente e só consigo fechar a aplicação finalizando o processo. Estou usando Delphi 2009 com Interbase, utilizando o método de acesso IBX. obs: QueryLogin = IBQuery Poderiam por gentileza me ajudar? Grato Antenor
Maria Domingues
Post mais votado
04/12/2009
Silvio Figueiró
Mais Posts
04/12/2009
Robson Catunda
04/12/2009
Maria Domingues
04/12/2009
Wilton Procopio
ja me deparei com essa situaçao e resolvi dessa maneira
tente usar esse comando no evento on close
action:=cafree;
olhe se no evento pode ser que esteja desassociado
05/12/2009
Thiago Silva
05/12/2009
Perivaldo Martins
07/12/2009
Maria Domingues
07/12/2009
Perivaldo Martins
07/12/2009
Wilson Junior
Exemplo:
if QueryLogin.Active then
//coloque aqui o seu código
Espero ter ajudado.
07/12/2009
Maria Domingues
procedure TLogin.btnOKClick(Sender: TObject);
var
strSqlLog: string;
mensagem: string;
begin
strSqlLog := 'SELECT * FROM usuario, perfil WHERE usuario.nivel = perfil.id ';
strSqlLog := strSqlLog + 'AND fantasia =' + #39 + (ValorNome.Text) + #39;
strSqlLog := strSqlLog + 'AND senha = '+ #39 + (ValorSenha.Text) + #39; menuPrin.QueryLogin.Close;
menuPrin.QueryLogin.SQL.Clear;
menuPrin.QueryLogin.SQL.Add(strSqlLog);
menuPrin.QueryLogin.Open; if not menuPrin.QueryLogin.IsEmpty then
begin
menuPrin.StatusBar1.Panels[2].Text :=
' '+'Usuário: '+ Login.ValorNome.Text+' - '+menuPrin.QueryLogin.FieldByName('dpto').AsString; end
else
begin
mensagem := 'Nome ou senha do usuário inválidos.' + #13 + #13
+ 'Se você esqueceu sua senha, consulte ' + #13
+ 'o administrador do sistema.'; Application.MessageBox(pchar(mensagem), 'Login não autorizado',
MB_OK+MB_ICONERROR);
ValorSenha.Text := '';
ValorSenha.SetFocus;
ModalResult := mrNone;
end; end; procedure TLogin.btnCancelarClick(Sender: TObject);
begin
menuPrin.Close;
end; Se tiverem mais uma idéia, por favor, não hesitem em falar, mas já está se tornando uma situação frustrante para mim. Obrigado a todos pela ajuda.
07/12/2009
Wilson Junior
menuPrin.Close;
FreeAndNil( menuPrin );
ModalResult := mrCancel;
e no evento OnClose do form de login:
Action := caFree;
TLogin := nil;
Espero ter ajudado.
07/12/2009
Maria Domingues
SCI - Sistema Comercial Integrado
---------------------------
Access violation at address 004D051D in module 'SCI.exe'. Read of address 00000000.
---------------------------
OK
--------------------------- e quando clico em ok aparece o mesmo erro de outrora:
---------------------------
SCI - Sistema Comercial Integrado
---------------------------
QueryLogin: Field 'cadclifor' not found.
---------------------------
OK
--------------------------- Valeu pela ajuda
07/12/2009
Wilson Junior
E em que local (form e procedimento e/ou componente) está sendo utilizado o "cadclifor"?
07/12/2009
Maria Domingues
begin
Cad_CliFor.Enabled := (QueryLogin.FieldByName('cadclifor').AsString = 'S');
end; Grato
07/12/2009
Wilson Junior
strSqlLog := 'SELECT * FROM usuario, perfil WHERE usuario.nivel = perfil.id ';
strSqlLog := strSqlLog + 'AND fantasia =' + #39 + (ValorNome.Text) + #39;
strSqlLog := strSqlLog + 'AND senha = '+ #39 + (ValorSenha.Text) + #39;
Se a resposta for NÃO, é este o problema.
Caso não seja esta a resposta. Faça o seguinte:
procedure TLogin.btnCancelarClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TmenuPrin.Cad_CliForUpdate(Sender: TObject);
begin
if not Application.Terminated then
Cad_CliFor.Enabled := (QueryLogin.FieldByName('cadclifor').AsString = 'S');
end;
Vamos ver se da certo...
07/12/2009
Maria Domingues
Clique aqui para fazer login e interagir na Comunidade :)