J'ai écrit un composant d'éditeur de texte avancé (largeur fixe, coloration syntaxique, etc.) dans Delphi, en utilisant l'API Windows combinée avec l'élément TCanvas, et ça marche très bien, sauf pour une chose: Si je mets l'accent sur un autre contrôle à l'intérieur de la même application qui affiche un signe, comme un TEdit, en volant le focus de mon éditeur, le signe du nouvel éditeur (tel que TEdit) n'est pas affiché; à la place, le curseur se déplace dans mon composant éditeur! Par exemple, si j'écris un caractère dans le nouvel éditeur (TEdit), il apparaîtra comme prévu, et le curseur se déplacera vers la droite dans mon composant. Qu'est-ce qui peut causer ça? Je soupçonne qu'il y a un certain conflit entre la manipulation de Win API du focus du clavier et la gestion de la VCL. Dans mon composant d'éditeur, j'utilise CreateCaret en réponse à WM_SETFOCUS et DestroyCaret en réponse à WM_KILLFOCUS. Apparemment, le problème se produit uniquement si le nouveau contrôle d'édition est dans une nouvelle fenêtre modale.Delphi Focus Problème vu par Caret
Répondre
J'ai trouvé un bogue trivial dans le code du composant. Mes excuses.
Alors s'il vous plaît accepter une réponse (Loren ou le vôtre). Cela supprimera le drapeau sans réponse. –
Je le ferai dans quatre heures. (Le serveur ne me laisse pas le faire maintenant.) –
Ma première pensée serait que vous n'obteniez pas le message WM_KILLFOCUS. Je voudrais construire un diagnostic pour vous dire si cela se produit ou non.
Je suis PAS incliné à utiliser un débogueur pour ce genre de problème, je trouve que faire des choses comme modifier le titre fonctionne mieux lorsque vous essayez de diagnostiquer des interactions comme celle-ci.
Merci, mais je suis certain que le code est exécuté. (J'ai essayé avec le bip.) –
- 1. Delphi Drawing Focus
- 2. Problème avec WPF Focus
- 3. Problème Swing-focus
- 4. Que signifie le signe caret (^)?
- 5. WPF Zone de texte persistante caret visible
- 6. wpf passwordbox caret
- 7. NSLayoutManager setAllowsNonContiguousLayout place mal caret
- 8. HTML et Flex Focus Problème
- 9. Comment désactiver Caret Clignotant?
- 10. WPF PasswordBox Caret
- 11. Editable Div Caret Position
- 12. Caret dans l'objectif C
- 13. Delphi {$ IFDEF} CONSOLE problème
- 14. Delphi SearchText Problème
- 15. Problème avec delphi tdbrichedit
- 16. (delphi) imprimer problème d'image
- 17. Delphi TADOQuery SaveToFile problème
- 18. Caret personnalisé pour WinForms TextBox
- 19. Supprimer le focus rect sur le contrôle - Delphi
- 20. Vérifiez si le focus Rect est requis (Delphi)
- 21. C++/Qt: dessiner un caret
- 22. Problème avec asp.net C# focus, page_load
- 23. Pointeur vu par Visual Studio comme un vide **
- 24. Qu'est-ce qu'un périphérique Linux doit être vu par Hal?
- 25. TextField() Définir la position caret
- 26. Javascript, Que fait l'opérateur^(caret)?
- 27. Formulaire Delphi Réduire le problème
- 28. SWT Global KeyListener Button Focus Problème
- 29. Problème avec TextBox Focus dans WPF
- 30. Vidéo Vu compteur
Sans l'exemple de code, on ne peut que deviner. Peut être votre composant de l'éditeur de texte reçoit un message WM_SETFOCUS incorrect après avoir reçu WM_KILLFOCUS et avoir perdu le focus actully. – kludg
Malheureusement, ce n'était pas ça ... –