Autor Beitrag
Metschu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: So 13.12.09 13:44 
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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 133


D3 Prof, D7 PE
BeitragVerfasst: 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.


Zuletzt bearbeitet von Michael Stenzel am So 13.12.09 17:29, insgesamt 1-mal bearbeitet
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: 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
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 133


D3 Prof, D7 PE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: So 13.12.09 22:40 
Hallo Michael!
user profile iconMichael Stenzel hat folgendes geschrieben Zum zitierten Posting springen:
...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