Hier ein Tipp wie man in einen MessageDlg Meldungsfenster eine Schaltfläche mit einer eigenen Bezeichnung einfügen kann, bzw. die vorhandenen nach eigenen Bedürfnissen ändern kann. Tatsächlich ist es nicht das MessageDlg Fenster das beeinflußt wird, sondern eine eigenes Meldungsfenster. Es wird mit Hilfe von CreateMessageDialog erstellt. Allerdings werden nicht neuen Buttons hinzugefügt, sondern die vorhandenen in der Bezeichnung verändert. Siehe dazu auch diesen
Tipp.
Für den Tipp wird eine Funktion erstellt die eine eigenes MessageDlg Fenster erstellt. Der Button "Ignorieren" wird insoweit verändert, als daß er eine andere Caption Bezeichnung bekommt. Um abzufragen ob dieser Button geklickt wurde muß allerdings weiterhin geprüft werden ob der mbIgnore Button (mrIgnore Rückgabewert) geklickt wurde.
Die Parameter sind die gleichen wie bei MessageDlg. Nur die Bezeichnung des Ignore Buttons wurde intern verändert.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| function MyMessageDlg(const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint): Word; var Comp: TComponent; k: Integer; begin with CreateMessageDialog(Msg, AType, AButtons) do begin for k := 0 to ComponentCount - 1 do begin Comp := Components[k]; if Comp is TButton then with TButton(Comp) do begin if UpperCase(Name) = 'IGNORE' then Caption := 'Mein &Button'; end; end; Result := ShowModal; end; end; |
Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); begin if MyMessageDlg('Das ist die Message.', mtInformation, [mbOk, mbIgnore], 0) = mrIgnore then ShowMessage('Es wurde der Button "Mein Button" geklickt. Tatsächlich ist ' + 'aber der Button "Ignorieren", nur mit anderen Caption-Bezeichnung.'); end; |