Question

Quand j'appelle un OpenDialog de ma forme sur l'événement ButtonClick. La boîte de dialogue ne montre pas que modale et est également affiche dans la barre des tâches (en WindowsXP). Je peux revenir à la forme principale et cliquez sur Ouvrir encore et encore - apparaître plusieurs boîtes de dialogue à la fois ..

Comment puis-je faire un OpenDialog être modale FireMonkey? Est-il spécifiquement fait pour que pas de dialogue modales sont autorisés en raison de anture multi-plate-forme de FM?

EDIT:. Le bug est résolu dans le 3

Était-ce utile?

La solution

Je pense qu'il est un bug. Il y a beaucoup de bugs de type modal avec FireMonkey, et nous espérons qu'ils seront bientôt les fixer. À l'heure actuelle, même les formes modales ne sont pas modal.

Pour votre problème, j'ai une solution de contournement pour Windows, mais vous ne pouvez pas comme ça.

Vous devez corriger la ligne suivante dans la méthode TPlatformWin.DialogOpenFiles () dans FMX.Platform.Win.

Sous changement with OpenFile do:

hwndOwner := 0;

Pour cela:

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

La fonction utilise l'appel API GetOpenFileName Windows, même si elle est dépréciée sur Vista et plus. Si une poignée de propriétaire est transmis, la boîte de dialogue est modale, sinon ce n'est pas.

Vous pouvez soumettre cela comme un bug à qc.embarcadero.com avec la solution de contournement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top