Also sorry, modale Messageboxen machen in meinen Augen fast immer Sinn, weil man zu 99% auf etwas wartet, was im Anschluss gemacht wird, ansonsten habe ich ja wieder eine weitere Prozedure, die ich ohne diesen Quatsch nicht hätte. In XE6 (oder XE5?) ging es doch auch. Es jetzt aber so kompliziert zu machen finde ich ekelig. Und fast jeder wird sich eine Funktion wie diese zusammenpfuschen, was ja eigentlich nicht im Sinne des Erfinders ist.
@Sir: Nichts für ungut, aber man kann sich alles neue auch einfach schön reden. Ist ja wie beim Mac/iPhone: Das macht Sinn, der Hersteller hat sich schon was dabei gedacht, worauf Du halt nicht kommst. Das hat nichts mit "War immer so" zu tun, sondern "Ich möchte eine Aufgabe möglichst schnell, einfach und effektiv erledigen."
Code:
var MsgDlgResult: Integer;
function MessageDlg(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin
MsgDlgResult := -1;
FMX.Dialogs.MessageDlg(Msg, DlgType, Buttons, HelpCtx,
procedure(const AResult: TModalResult)
begin
MsgDlgResult:= AResult;
end
);
while MsgDlgResult<0 do Delay(10);
Result := MsgDlgResult;
end;