Domanda

Quando sto chiamando un OpenDialog dalla mia forma sull'evento ButtonClick. La finestra di dialogo non mostra come modali ed è anche visualizzato nella barra delle applicazioni (in Windows XP). Posso tornare a forma principale e clicca di nuovo e di nuovo aperto - spuntando diverse finestre di dialogo in una volta ..

Come faccio a fare un OpenDialog di essere modale in FireMonkey? E 'espressamente fatto in modo che non le finestre di dialogo modali sono autorizzati a causa di multi-piattaforma anture di FM?

EDIT:. Il bug è stato risolto in Update 3

È stato utile?

Soluzione

Penso che sia un bug. Ci sono un sacco di bug di tipo modale con FireMonkey, e speriamo che saranno loro riparavano presto. Attualmente, anche le forme modali non sono modali.

Per il tuo problema, ho una soluzione per Windows, ma non si potrebbe piacervi.

È necessario fissare la seguente riga nella TPlatformWin.DialogOpenFiles () metodo FMX.Platform.Win.

In cambio with OpenFile do:

hwndOwner := 0;

Per questo:

hWndOwner := FmxHandleToHWND(Application.MainForm.Handle);

La funzione utilizza la chiamata GetOpenFileName API di Windows, anche se è deprecato su Vista e sopra. Se una maniglia proprietario viene passato, la finestra è modale, altrimenti non è.

Si potrebbe desiderare di presentare questo come un bug per qc.embarcadero.com insieme la soluzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top