¿Cómo hacer que Opendialog se muestre modal en Firemonkey?
-
26-10-2019 - |
Pregunta
Cuando llamo a un Opendialog desde mi formulario en el evento Buttonclick. El diálogo no se muestra como modal y también se muestra en la barra de tareas (en Windowsxp). Puedo volver al formulario principal y hacer clic en abrir una y otra vez, apareciendo varios diálogos a la vez.
¿Cómo hago un Opendialog para ser modal en Firemonkey? ¿Está hecho específicamente para que no se permitan diálogos modales debido a la antie multiplataforma de FM?
EDITAR: El error se soluciona en la actualización 3.
Solución
Creo que es un error. Hay muchos errores de tipo modal con Firemonkey, y espero que los arreglen pronto. Actualmente, incluso las formas modales no son modales.
Para su problema, tengo una solución para Windows, pero es posible que no le guste.
Debe corregir la siguiente línea en el método tplatformwin.dialogopenfiles () en fmx.platform.win.
Por debajo with OpenFile do
cambio:
hwndOwner := 0;
A esto:
hWndOwner := FmxHandleToHWND(Application.MainForm.Handle);
La función utiliza las ventanas GetOpenFileName
API Llamada, a pesar de que está en desuso en Vista y superior. Si se pasa un mango del propietario, el diálogo es modal, de lo contrario no lo es.
Es posible que desee enviar esto como un error a Qc.embarcadero.com junto con la solución.