Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Raize TRzDBNavigator Delete Ausführung unterbrechen und etwas anderes machen. (https://www.delphipraxis.net/211910-raize-trzdbnavigator-delete-ausfuehrung-unterbrechen-und-etwas-anderes-machen.html)

dstein 20. Nov 2022 15:55

Raize TRzDBNavigator Delete Ausführung unterbrechen und etwas anderes machen.
 
Raize TRzDBNavigator
Bei einem TRzDBNavigator möchte ich wenn der TRzNavigatorButton.nbDelete gedrückt wird die Delete Ausführung unterbrechen und etwas anderes machen.
Dabei ist mir aufgefallen das die Delete Anweisung schon beim "BeforeAction" ausgeführt wird und nicht erst beim "OnClick".
Wie kann ich mich dazwischen schummeln vor der Delete Anweisung und eine andere Anweisung einbauen?


procedure Tfrm_Kontakte.RzDBNavigatorFABeforeAction(Sender: TObject; Button: TRzNavigatorButton);
begin
case Button of
TRzNavigatorButton.nbdelete:
begin
CodeSite.Send(' nbdelete ');
// wenn delete dann mache etwas anderes
// kann ich hier unterbrechen?
end;
end;
end;


procedure Tfrm_Kontakte.RzDBNavigatorFAClick(Sender: TObject; Button: TRzNavigatorButton);
begin
case Button of
TRzNavigatorButton.nbdelete:
begin
// wenn ich hier bin wurde das Message delete schon aufgerufen.
// nicht löschen nur KZ_Aktiv :=9;
// wenn delete dann mache etwas anderes
end;
end;
end;

peterbelow 20. Nov 2022 16:55

AW: Raize TRzDBNavigator Delete Ausführung unterbrechen und etwas anderes machen.
 
Delphi-Quellcode:
Abort;
Damit kann man sowas unterbrechen, der Code flow geht dann zurück bis zur message loop. Für Risiken und Nebenwirkungen befragen Sie ihre Kristallkugel :wink:

dstein 20. Nov 2022 17:18

AW: Raize TRzDBNavigator Delete Ausführung unterbrechen und etwas anderes machen.
 
Danke hatte es nur beim "OnClick" ausprobiert. Aber die Aktion muß bei "BeforeAction" erfolgen.
Nun passt es.

procedure Tfrm_Kontakte.RzDBNavigatorFABeforeAction(Sender: TObject; Button: TRzNavigatorButton);
begin
case Button of
TRzNavigatorButton.nbdelete:
begin
CodeSite.Send('BeforeAction nbdelete ');
// wenn delete dann mache etwas anderes
if Qry_FirmaIDNR.AsInteger > 0 then
begin
Qry_Firma.Edit;
Qry_FirmaKZ_Aktiv.AsInteger := 9;
Qry_Firma.Post;
Qry_Firma.Refresh;
end;
Abort;
end;
end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz