Mon application a plusieurs modules, chacun dans un onglet sur la mainform. Lorsque vous utilisez une boîte de dialogue, il est pratique d'appeler ShowModal car vous savez quand la boîte de dialogue est terminée. Mais pour l'utilisateur ce n'est pas bon car cela verrouille tout le programme jusqu'à ce que la boîte de dialogue se ferme.Faux dialogue modal en utilisant Afficher?
Je veux avoir un dialogue modal local. Ainsi, un module peut ouvrir une boîte de dialogue et verrouille uniquement le module en cours. L'utilisateur peut toujours passer à un autre module et continuer à travailler. Si l'utilisateur revient au premier module, la boîte de dialogue attend d'être fermée avant que l'utilisateur puisse continuer à travailler dans ce module.
Je dois créer une sorte de cadre pour cela que tous les dialogues dans l'application peuvent utiliser. J'ai un baseclass pour toutes les boîtes de dialogue TAttracsForm et je pense que voici l'endroit où ajouter ma méthode Show().
Ceci devrait bloquer l'accès à tous les contrôles de ligne uniquement dans le module en cours. Il devrait simuler un appel à ShowModal(). Comment puis-je atteindre cet objectif ?
Cordialement
Je me rends compte que certaines propriétés doivent être ajoutées dans le dialogue et le module. Oublions ça pour un moment. Mais le problème principal est comment puis-je désactiver localement tous les composants de mon module pendant que la boîte de dialogue est affichée. C'est une mauvaise solution de les boucler simplement parce qu'ils sont tellement nombreux. –
Selon le type de contrôle contenu dans vos contrôles, vous devriez pouvoir désactiver le parent. Par exemple, si vos composants sont tous sur une feuille TTabSheet, la désactivation de la feuille TTabSheet empêche l'accès à tous ces contrôles. –
J'ai juste une autre idée. Puis-je simplement définir la propriété Enabled sur False du module (qui hérite de TForm) pour verrouiller tous les composants? Un test rapide semble prometteur :) –