Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - MessageDlg -> Default Button funktioniert nicht
Metschu - So 13.12.09 13:44
Titel: MessageDlg -> Default Button funktioniert nicht
Hallo zusammen!
in meinem Projekt soll eine Messagebox mit "Ja" und "Nein" erscheinen, wobei "Nein" schon markiert sein soll.
In der Delphi-Hilfe steht folgendes Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.Button1Click(Sender: TObject);
begin if MessageDlg('Welcome to my Delphi application. Exit now?', mtConfirmation, [mbYes, mbNo], 0, mbYes) = mrYes then begin MessageDlg('Exiting the Delphi application.', mtInformation, [mbOk], 0, mbOk); Close; end;
end; |
Wenn ich das so 1:1 in Kopiere, erscheint die Fehlermeldung "Zu Viele Parameter".
Nehme ich das Markierte raus, klappt alles nur nimmt er dann "Ja" als default.
Wo liegt der Fehler?
bei mir, in der Delphi-Hilfe oder hab ich was vergessen in der Uses-Liste aufzunehmen ? ?
Danke!
Gruß
Torsten
Michael Stenzel - So 13.12.09 15:09
Hallo Metschu,
Wenn du den letzten Parameter von mbYes auf mbNo änders, sollte deine "Nein" - Schaltfläche als default aktiviert werden. Es kommt allerdings noch auf deine Delphi Version an. Version 3 unterstützt z.B. den Default-Parameter nicht, genauso wenig wie Delphi 7 in der Personal-Version, obwohl die überladene Funktion schon in der Hilfe angegeben wird. Bei Turbo Delphi 2006 funktioniert die Funktion so wie in der Hilfe angegeben.
[Edit : Bei Delphi die Version vergessen 7]
Gruß
Michael.
ffgorcky - So 13.12.09 16:44
Also wenn ich jetzt gerade irgendwo einen Denkfehler habe, dann setzt die Zahl hinten doch den Default-Index der Messagebox - also sollte dort entweder
if MessageDlg('Welcome to my Delphi application. Exit now?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
- oder
Delphi-Quelltext
1:
| if MessageDlg('Welcome to my Delphi application. Exit now?',mtConfirmation, [mbYes, mbNo], mbYes) = mrYes then |
stehen.
Ich hoffe, dass ich jetzt gerade nichts falsches behaupte, da ich das gerade nicht nachprüfen kann...
Michael Stenzel - So 13.12.09 17:40
ffgorcky sagt:
| Zitat: |
if MessageDlg('Welcome to my Delphi application. Exit now?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
- oder
Delphi-Quelltext markieren
1:
if MessageDlg('Welcome to my Delphi application. Exit now?',mtConfirmation, [mbYes, mbNo], mbYes) = mrYes then
|
Der Parameter 0 ist für den Hilfe-Index bestimmt. Bei der Überladene Funktion wird der Default-Parameter zu der Parameterliste zugefügt, nicht aber der Hilfe-Index durch diesen ersetzt.
Gruß
Michael.
Metschu - So 13.12.09 22:40
Hallo Michael!
Michael Stenzel hat folgendes geschrieben : |
| ...Es kommt allerdings noch auf deine Delphi Version an. Version 3 unterstützt z.B. den Default-Parameter nicht, genauso wenig wie Delphi 7 in der Personal-Version, obwohl die überladene Funktion schon in der Hilfe angegeben wird... |
Dann hat sich das Problem gerade erledigt, da ich mit Delphi 7 PE arbeite.
Somit muß ich mir halt was eigenes basteln :roll:
Danke für die Antwort!
Gruß
Torsten
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!