Wie mache ich Opendialog Modal in Fironemonkey Show?
-
26-10-2019 - |
Frage
Wenn ich einen Opendialog aus meinem Formular auf Buttonclick -Ereignis anrufe. Der Dialog wird nicht als Modal angezeigt und wird auch in der Taskleiste angezeigt (in WindowsXP). Ich kann zum Hauptformular zurückkehren und immer wieder öffnen - auf einmal aufzuheben.
Wie mache ich einen Opendialog, um in Fironemonkey modal zu sein? Ist es speziell so hergestellt, dass aufgrund einer Multi-Plattform-Keime von FM keine modalen Dialoge zulässig sind?
BEARBEITEN: Der Fehler ist in Update 3 behoben.
Lösung
Ich denke, es ist ein Fehler. Es gibt viele Modal -Fehler mit Fironemonkey, und hoffentlich werden sie sie bald reparieren. Derzeit sind sogar modale Formen nicht modal.
Für Ihr Problem habe ich eine Problemumgehung für Windows, aber Sie mögen es vielleicht nicht.
Sie müssen die folgende Zeile in der Methode tPlatformwin.dialogopenFiles () in fmx.platform.win reparieren.
Unter with OpenFile do
Rückgeld:
hwndOwner := 0;
Dazu:
hWndOwner := FmxHandleToHWND(Application.MainForm.Handle);
Die Funktion verwendet die Fenster GetOpenFileName
API -Anruf, obwohl es auf Vista und darüber veraltet ist. Wenn ein Eigentümerhandel eingegeben wird, ist das Dialog modal, sonst nicht.
Möglicherweise möchten Sie dies als Fehler an qc.embarcadero.com zusammen mit der Problemumgehung senden.