Fórum Quem Sabe esse ERRO gerado pelo delphi... #228525
28/04/2004
0
Pessoal, o delphi esta me gerando o seguinte erro:
EAccessViolation whith message ´Access Violation at adress 004E7880.
Read of address 00000320´.
Ele gera esse erro, quando eu abro uma table de cidades e ele tenta executar um codigo que está no evento StateChange do DataSource desta tabela. O Código é este:
FTCADCID.BBINCLUIRCID.Enabled := IBDSCADCIDADE.State in [dsBrowse];
FTCADCID.BBGRAVARCID.Visible := IBDSCADCIDADE.State in [dsEdit, dsInsert];
FTCADCID.BBCANCELCID.Enabled := IBDSCADCIDADE.State in [dsEdit, dsInsert];
FTCADCID.BBEXCLUIRCID.Enabled := IBDSCADCIDADE.State in [dsBrowse];
Se eu desabilito esse codigo, tudo funciona perfeitamente.
Alguem sabe o que pode ser ?
Um abraço a todos.
[/img]
Diegodelphi
Curtir tópico
+ 0Posts
28/04/2004
Flaviosan
FTCADCID.BBGRAVARCID.Visible := not(IBDSCADCIDADE.State in [dsEdit, dsInsert]);
não sei se é seu caso.
Gostei + 0
28/04/2004
Pabhen
Pelo q eu tentei entender vc está tentando atribuir propriedades de um datasource as propriedades do botão botão, é isso?
Se for, vc naum pode fazer desse modo, tenta o seguinte
If IBDSCADCIDADE.State in [dsEdit, dsInsert] then
Begin
FTCADCID.BBINCLUIRCID.Enabled :=False;
FTCADCID.BBEXCLUIRCID.Enabled :=False;
FTCADCID.BBGRAVARCID.Enabled:=True;
FTCADCID.BBCANCELCID.Enabled:=true
End
Else
Begin
FTCADCID.BBINCLUIRCID.Enabled :=True;
FTCADCID.BBEXCLUIRCID.Enabled :=True;
FTCADCID.BBGRAVARCID.Enabled:=False;
FTCADCID.BBCANCELCID.Enabled:=False;
End;
espero ter ajudado;
Gostei + 0
28/04/2004
Flaviosan
procedure TFRMPAI.DSTABELAStateChange(Sender: TObject); const Estados : array[TDataSetState] of String = (´FECHADO´,´NAVEGANDO´,´EDITANDO´,´INSERINDO´,´´,´´,´´,´´,´´,´´,´´,´´,´´); begin TBTN_INS.Enabled := DSTABELA.State in [dsBrowse]; TBTN_POST.Enabled := DSTABELA.State in [dsInsert, dsEdit]; TBTN_CANCEL.Enabled := DSTABELA.State in [dsInsert, dsEdit]; TBTN_DEL.Enabled := DSTABELA.State in [dsBrowse]; TBTN_EDIT.Enabled := DSTABELA.State in [dsBrowse]; TBTN_REFRESH.Enabled := DSTABELA.State in [dsBrowse]; TBTN_EXIT.Enabled := DSTABELA.State in [dsBrowse]; PAINEL_MANUT.Enabled := DSTABELA.State in [dsInsert, dsEdit]; StatusBar1.Panels[0].Text := Estados[DSTABELA.State]; end;
Gostei + 0
28/04/2004
Flaviosan
.
Gostei + 0
28/04/2004
Pabhen
procedure TFRMPAI.DSTABELAStateChange(Sender: TObject); const Estados : array[TDataSetState] of String = (´FECHADO´,´NAVEGANDO´,´EDITANDO´,´INSERINDO´,´´,´´,´´,´´,´´,´´,´´,´´,´´); begin TBTN_INS.Enabled := DSTABELA.State in [dsBrowse]; TBTN_POST.Enabled := DSTABELA.State in [dsInsert, dsEdit]; TBTN_CANCEL.Enabled := DSTABELA.State in [dsInsert, dsEdit]; TBTN_DEL.Enabled := DSTABELA.State in [dsBrowse]; TBTN_EDIT.Enabled := DSTABELA.State in [dsBrowse]; TBTN_REFRESH.Enabled := DSTABELA.State in [dsBrowse]; TBTN_EXIT.Enabled := DSTABELA.State in [dsBrowse]; PAINEL_MANUT.Enabled := DSTABELA.State in [dsInsert, dsEdit]; StatusBar1.Panels[0].Text := Estados[DSTABELA.State]; end;
blz flaviosan, eu naum conhecia essa forma de trabalhar, de qualquer forma valeu pelo toque.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)