Como suspender a execução de um botão em um dbnavigator
Saudações ...
Gostaria de colocar um controle sobre um evento do dbnavigator (no momento estou tentando fazer sobre o evento beforeaction) para que quando o dataset estiver em estado dsinsert ou dsedit fosse possível suspender a execução do botão clicado (no momento os botões visíveis são first, prior, next e last).
Não consegui uma solução ainda, embora tenha tentado o seguinte:
1 - dar exit no procedimento - mas isto só quebra o procedimento beforeaction e o botão clicado do dbnavigator executa;
2 - atribuir null á variável Button: TNavigateBtn; //botão clicado do dbnavigator executa
//exemplo
procedure Tnservidor.DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
if (dmq.Qcargo.state=dsInsert) or (dmq.Qcargo.state=dsEdit) then
begin
if messagedlg(´Cargo sendo Inserido ou Modificado.
Gravar?´,mtconfirmation, [mbyes, mbNo],0)= mryes then
begin
bitbtn6.Click;
// neste ponto precisaria informar para o dbnavigator não
executar o botão clicado (suspender o click)
end
else
dmq.Qcargo.Cancel;
end;
end;
Alguma outra idéia ou complementação desta?
Um abraço
Gostaria de colocar um controle sobre um evento do dbnavigator (no momento estou tentando fazer sobre o evento beforeaction) para que quando o dataset estiver em estado dsinsert ou dsedit fosse possível suspender a execução do botão clicado (no momento os botões visíveis são first, prior, next e last).
Não consegui uma solução ainda, embora tenha tentado o seguinte:
1 - dar exit no procedimento - mas isto só quebra o procedimento beforeaction e o botão clicado do dbnavigator executa;
2 - atribuir null á variável Button: TNavigateBtn; //botão clicado do dbnavigator executa
//exemplo
procedure Tnservidor.DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
if (dmq.Qcargo.state=dsInsert) or (dmq.Qcargo.state=dsEdit) then
begin
if messagedlg(´Cargo sendo Inserido ou Modificado.
Gravar?´,mtconfirmation, [mbyes, mbNo],0)= mryes then
begin
bitbtn6.Click;
// neste ponto precisaria informar para o dbnavigator não
executar o botão clicado (suspender o click)
end
else
dmq.Qcargo.Cancel;
end;
end;
Alguma outra idéia ou complementação desta?
Um abraço
Delmar
Curtidas 0
Respostas
Everton
10/02/2004
Delmar,
para suspender a execução do evento OnClick do dbnavigator, coloque o comando Abort;
procedure Tnservidor.DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
if (dmq.Qcargo.state=dsInsert) or (dmq.Qcargo.state=dsEdit) then
begin
if messagedlg(´Cargo sendo Inserido ou Modificado.
Gravar?´,mtconfirmation, [mbyes, mbNo],0)= mryes then
begin
bitbtn6.Click;
[color=blue:173b9bc48b]Abort;[/color:173b9bc48b]
end
else
dmq.Qcargo.Cancel;
end;
end;
[color=blue:173b9bc48b][/color:173b9bc48b]
para suspender a execução do evento OnClick do dbnavigator, coloque o comando Abort;
procedure Tnservidor.DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
if (dmq.Qcargo.state=dsInsert) or (dmq.Qcargo.state=dsEdit) then
begin
if messagedlg(´Cargo sendo Inserido ou Modificado.
Gravar?´,mtconfirmation, [mbyes, mbNo],0)= mryes then
begin
bitbtn6.Click;
[color=blue:173b9bc48b]Abort;[/color:173b9bc48b]
end
else
dmq.Qcargo.Cancel;
end;
end;
[color=blue:173b9bc48b][/color:173b9bc48b]
GOSTEI 0