AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

MessageDlg abfangen der Buttons

Ein Thema von Darkchild · begonnen am 26. Okt 2006 · letzter Beitrag vom 26. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2   
Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#1

MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 12:35
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:
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;
Also meine Frage jetzt, wie mache ich das richig ?

Gruss
Darkchild
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 12:38
Schau dir den Rückgabewert der MessageDlg-Funktion an
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 12:40
Hallo,

so:
Delphi-Quellcode:
if MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0)=mrYes then
begin
  ...
end
else
begin
  ...
end;
Ein Blick in die Delphi-Hilfe hätte auch nicht geschadet.
  Mit Zitat antworten Zitat
Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 12:49
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
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 12:52
Delphi-Quellcode:
var Int: Integer;
begin
int := MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0);
if int = mrYes then
...
So gings alternativ auch

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 13:05
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
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#7

Re: MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 13:43
Zitat von Darkchild:
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 ?
Bitte poste mal den entsprechenden Code-Schnipsel, meine Kristallkugel ist gerade zur Wartung unterwegs
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 13:51
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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 14:12
Kannst es auch so machen:

Delphi-Quellcode:
Case MessageDlg('Diesen Mitarbeiter wirklich löschen ?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) of
 mrYes: ...
 mrNo : ...
 mrCancel: ...
end;
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Darkchild

Registriert seit: 13. Okt 2006
Ort: NRW
169 Beiträge
 
Delphi 2006 Enterprise
 
#10

Re: MessageDlg abfangen der Buttons

  Alt 26. Okt 2006, 14:47
Hey,

also der Code sieht folgendermaßen aus :

Delphi-Quellcode:
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;
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.

Sollte aber normal mit einem einfachen Klick gehen.

Gruss
Darkchild
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz