Como suspender a execução de um botão em um dbnavigator

Delphi

10/02/2004

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


Delmar

Delmar

Curtidas 0

Respostas

Everton

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]


GOSTEI 0
POSTAR