Hier noch ein Beitrag zum Thema „MessageDlg macht komische Dinge bis Delphi XE“ (getestet mit 2009):
Delphi-Quellcode:
case MessageDlg('Ja oder nein?', mtWarning, mbYesNo, 0) of
end;
Wie viele verschiedene TModelResult kann der Nutzer anklicken?
Lösung (Zeile markieren):
Drei, nämlich mrYes, mrNo und mrCancel.
Folgender Code funktioniert zwar in XE2, bringt einen aber in vorherigen Versionen in große Schwierigkeiten, wenn der Nutzer auf die Idee kommt, Esc zu drücken oder auf X zu klicken und sich wundert, warum alle Dateien weg sind.
Delphi-Quellcode:
if MessageDlg('Möchten Sie alle Dateien auf ihrem Computer löschen?', mtWarning, mbYesNo, 0) = mrNo then Exit;
LöscheAlleDateien();
Wer also noch mit diesen Versionen unterwegs ist und MessageDlg benutzt: Passt bloß auf! Der CnPack-Designer macht es nämlich auch falsch.