Lorsque la fenêtre A est montrée, je souhaite montrer une autre fenêtre de popup non-modale B, mais: p>
Comme vous pouvez le constater, la fenêtre B que je veux, c'est quelque chose comme une fenêtre contextuelle plus utilisable comme un menu contextuel (qui est moins obstacle à une fenêtre générale non modale lorsque vous souhaitez que vous soyez à l'écart en cliquant sur n'importe quel autre partie de la fenêtre mère). p>
suis-je clair sur ma question? Merci. P>
6 Réponses :
Je peux l'utiliser pour ne pas perdre la mise au point: la deuxième partie que je n'ai pas très bien compris. p> p>
Afin d'empêcher une fenêtre de se concentrer sur la mise au point, vous devez spécifier le style ws_ex_noactivate code> style de fenêtre étendu (Windows 2000 et UP) ou gérer
wm_mouseactivate code> et retourner
et retourner
Ma_noactivate code>. P>
Merci Koro, je veux que la seconde se concentre, mais ne rend pas la barre de titre du formulaire de l'appelant devient inactive.
SPTBXFORMPOPUPMENU à partir du SPTBXLIB Le travail. P>
Je sais déjà cela, c'est semblable à ce que je veux, mais cela ne répond pas aux deux exigences que j'ai décrites dans ma question.
La solution la plus facile que j'avais trouvée pour "1" est d'envoyer un wm_ncactivate au formulaire d'appel dès que le formulaire de popup est activé (dans un gestionnaire WM_ACTIVATE), de sorte que le formulaire d'appel tire sa légende avec l'actif couleurs. Vous devrez avoir une référence pour le formulaire d'appel dans la fenêtre contextuelle pour y parvenir.
pour "2", vous pouvez libérer le formulaire contextuel dans le même gestionnaire WM_ACTIVATE, cela ne mangera pas les clics qui vont au formulaire d'appel. P>
SOH. comme cela devrait aller sur la forme popup; p> et fournir le formulaire d'appel comme propriétaire du formulaire popup; p> p>
FWIW, je suis d'accord avec LOURSONWINNY et Ulrich . Imo Un formulaire popup est plus compliqué que semble-t-il. Bien que dans le cas de SPTBXFORMPOPUMENU, vous devriez installer deux bibliothèques, tb2k et
Sur la touche1Cliquez, je ne crée pas le formulaire, il suffit de le montrer (mais attribuez une variable de fermeture). Pourquoi je reçois une erreur AV après le deuxième clic? (Si je supprimai la procédure Wmactivate de Tform2, l'erreur AV disparaîtra)
@Sam - Vous accédez probablement au formulaire après le relâcher. Je ne peux pas dire à coup sûr ...
@Sertatac Akyuz Je ne le libère pas! Je ne l'ai pas créé, il suffit d'l'afficher.
J'ai trouvé un qui fait presque exactement ce que je veux: Tadvstickypopupmenu P >
Je pense que cela ne répond pas vraiment à la question. Souhaitez-vous élaborer un peu comment cela atteint-il le "1" et "2" dans la question.
@Sertatac, peut-être que c'est difficile pour moi d'expliquer, mais je vais essayer;) D'abord, je peux utiliser n'importe quel contrôle comprenant un TPanel ou un TPANEL dans le Tadvstickypopupmenu, afin que je puisse l'utiliser comme conteneur contextuel pour mon TPANel (simuler une forme ), et cliquer sur le TPanel ne masque pas le menu, je peux donc simuler un formulaire de popup. Comment cette approche atteint-elle le "1" et "2" dans la question?
Lorsque vous contemplez le menu (avec un formulaire simulé dessus), vous vous sentirez Vous avez toujours envie de travailler sur la forme parent i>, cela signifie qu'il y a aucune commutation nécessaire i> entre la forme contextuelle et la forme parent. En changeant, je veux dire que le clic de souris supplémentaire doit concentrer le formulaire avant de pouvoir fonctionner sur les commandes sur le formulaire. Si vous le comparez à la liste déroulante Dropdownform et à la liste déroulante SPTBX mentionnée ci-dessus, vous trouverez la différence. Et si vous utilisez Gmail, essayez les étiquettes Pull Down Form formulaire, vous comprendrez ce que je veux dire.
Merci pour les explications. En regardant rapidement Tadvstickypopupmenu, je pensais que vous avez changé vos besoins en route et je suis allé pour une route différente, tandis que ma réponse ( Stackoverflow.com/Questtions/2178494/2192590#2192590 ) a effectivement rempli l'exigence de la question. Eh bien, peut-être que j'ai mal compris la question en premier lieu, donc si vous êtes en mesure de Modifier i> votre réponse de toute façon, permettez-moi de vous permettre d'annuler ma baisse. Merci encore.
Bonjour Sertac, je pense qu'en premier lieu, je n'ai pas bien décrit ma question, je pensais remplir mes besoins que je dois utiliser les formulaires contextuels, alors j'ai directement posé directement la question initiale, mais les explications en fait sont les exigences ultimes. .. Je peux sélectionner votre réponse comme réponse, mais votre approche empêchera-t-elle que le formulaire contextuel d'obtenir une entrée utilisateur? Vous savez que j'ai besoin d'utiliser un contrôle TList sur le formulaire contextuel pour permettre aux utilisateurs de choisir une valeur.
Soit cela fonctionne comme la façon dont vous vouliez ou non est pour vous de tester et de décider.
J'ai trouvé la solution moi-même ici. Merci à tous!: P>
Gardez la fenêtre inactive en apparence même lorsqu'il est activé < / p>