![]() |
MessageDlg abfangen der Buttons
Hallo,
habe da mal eine Frage am rande: Wenn ich einen MessageDlg habe mit den Buttons mbYes,mbNo und mbCancel und ich auf den jeweils geklickten Button reagieren möchte muss ich die wie ansprechen ? Hier im Quellcode könnt ihr sehen wie ich es versucht habe, kommt dabei aber zu einer Typen- unverträglichkeit.
Delphi-Quellcode:
Also meine Frage jetzt, wie mache ich das richig ? :oops:
procedure Tfrmansimitarst.cxbtnloeschenClick(Sender: TObject);
begin MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0); if mtConfirmation = mbyes then begin DataModuleMain.ibtablemitarbeiter.Delete; end else DataModuleMain.ibtablemitarbeiter.Cancel; end; Gruss Darkchild |
Re: MessageDlg abfangen der Buttons
Schau dir den Rückgabewert der MessageDlg-Funktion an
|
Re: MessageDlg abfangen der Buttons
Hallo,
so:
Delphi-Quellcode:
Ein Blick in die Delphi-Hilfe hätte auch nicht geschadet.
if MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0)=mrYes then
begin ... end else begin ... end; |
Re: MessageDlg abfangen der Buttons
Ok Funzt,
den Rückgabewert habe ich in der Zwischenzeit auch in der Delphi Hilfe gefunden, aber muss ich wirklich den ganzen Dialog mit in die Abfrage packen ? Hatte gedacht das geht auch kürzer z.B. über eine abfrage auf Tmsgdlgbtn oder so in der Richtung. Aber dennoch erstmal thx. Weil klappt ja mit dem langen msgdlg in der Abfrage. Gruss Darkchild |
Re: MessageDlg abfangen der Buttons
Delphi-Quellcode:
So gings alternativ auch
var Int: Integer;
begin int := MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0); if int = mrYes then ... Gruß Neutral General |
Re: MessageDlg abfangen der Buttons
Ok,
das ich das auch gesamt einer Variablen zuweisen kann ist klar, hatte mehr daran gedacht das es eine andere Möglichkeit gibt aus der abgeleiteten Klasse oder Objekt heraus, aber ist ja nun auch egal. Nach umsetzten der Geschichte stellt sich mir im Moment nur eine ganz andere Frage : Warum muss ich in dem Dialog 2 * auf die Buttons drücken bevor der die Aktion umsetzt. Die ganze Geschichte habe ich bei dem TcxButton auf das Ereignis "OnClick" gelegt und dem Dialog kann ich doch garnicht mitgeben ob 1 oder 2 Klicks, oder ? Ich weis ein haufen blöder Fragen von mir, aber in der Hilfe sehe ich dazu nix, davon abgesehen mag ich die Hilfe von BDS 2006 auch nicht wirklich( finde diese recht unübersichtlich). Gruss Darkchild |
Re: MessageDlg abfangen der Buttons
Zitat:
|
Re: MessageDlg abfangen der Buttons
Hallo,
Wenn Du es so aufgaut haben solltest, wird der Dialog zweimal aufgerufen.
Delphi-Quellcode:
if MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0)=mrYes then
begin ... end else if MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0)=mrCancel then begin begin Grüße Klaus |
Re: MessageDlg abfangen der Buttons
Kannst es auch so machen:
Delphi-Quellcode:
Gruß
Case MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of
mrYes: ... mrNo : ... mrCancel: ... end; Neutral General |
Re: MessageDlg abfangen der Buttons
Hey,
also der Code sieht folgendermaßen aus :
Delphi-Quellcode:
Der Dialog wir Aufgrufen bei dem Ereigniss "ONClick" klappt auch alles nur wenn der Dialog der Msgdlg erscheint und ich dann dort die Buttons zur Verfügung habe muss ich diese mit einem DoubleClick betätigen damit die jeweilige Funktion ausgeführt wird.
procedure Tfrmansimitarst.cxbtnloeschenClick(Sender: TObject);
begin MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0); if MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0)= mrYes then begin DataModuleMain.ibtablemitarbeiter.Delete; end else DataModuleMain.ibtablemitarbeiter.Cancel; end; Sollte aber normal mit einem einfachen Klick gehen. Gruss Darkchild |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:47 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