Ich habe folgenden Quelltext als letztes benutzt:
Code: Alles auswählen
function MyMessageDialog(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; Captions: array of string): Integer;
var
aMsgDlg: TForm;
i: Integer;
dlgButton: TButton;
CaptionIndex: Integer;
begin
// Create the Dialog
// Dialog erzeugen
aMsgDlg := CreateMessageDialog(Msg, DlgType, Buttons);
captionIndex := 0;
// Loop through Objects in Dialog
// Über alle Objekte auf dem Dialog iterieren
for i := 0 to aMsgDlg.ComponentCount - 1 do
begin
// If the object is of type TButton, then
// Wenn es ein Button ist, dann...
if (aMsgDlg.Components[i] is TButton) then
begin
dlgButton := TButton(aMsgDlg.Components[i]);
if CaptionIndex > High(Captions) then Break;
// Give a new caption from our Captions array
// Schreibe Beschriftung entsprechend Captions array
dlgButton.Caption := Captions[CaptionIndex];
Inc(CaptionIndex);
end;
end;
Result := aMsgDlg.ShowModal;
end;
procedure TFstart.openExecute(Sender: TObject);
begin
if MyMessageDialog('Was möchten sie öffnen?', mtConfirmation, mbOKCancel,
['1', '2']) = mrOk then
ShowMessage('"1" clicked')
else
ShowMessage('"2" clicked');
end;
Laut den Foren soll der Funktionieren. Ich empfinde den Quelltext als richtig. Aber trotzdem geht nur ein MessageDlg auf wo ich OK oder CANCEL erscheint. Ich will aber die Buttons andere Captions zuweisen......
geht das überhaupt bei lazarus?