J'utilise D2009. J'ai un composant dérivé de TWinControl auquel j'aimerais ajouter le panoramique de la souris. Je vois qu'il y a un nouveau style de contrôle, csPannable, et un nouvel état de contrôle, csPanning. J'ai regardé la source vcl pour essayer de comprendre, mais jusqu'à présent, je suis un peu perdu. Est-ce que quelqu'un sait de toute documentation pour cela? Toutes suggestions ou liens grandement appréciés!Comment faire un panoramique de la souris sur un composant personnalisé dans Delphi 2009
2
A
Répondre
1
Dans la même unité qui définit TWinControl, vous avez implémenté TControl. Voyez comment les événements et les procédures de la souris sont définis. Vous pouvez essayer de capturer des messages de souris dans votre composant.
Essayez ceci:
Dans des déclarations privées:
procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
procedure WMMouseMove(var Message: TWMMouseMove); message WM_MOUSEMOVE;
procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP;
En application que vous pouvez faire quelque chose comme ça
procedure TPanControl.WMLButtonDown(var Message: TWMLButtonDown);
begin
Self.Color := clYellow;
end;
procedure TPanControl.WMLButtonUp(var Message: TWMLButtonUp);
begin
Self.Color := clbtnFace;
end;
procedure TPanControl.WMMouseMove(var Message: TWMMouseMove);
var
State : TKeyboardState;
begin
GetKeyboardState(State);
if ((State[VK_LBUTTON] And $80) <> 0) then begin
Self.Color := clOlive;
end;
end;
test quelques variations. Avec ce code simple, vous pouvez attraper les événements de la souris. Dans ces procédures, vous pouvez lancer des événements de souris ou faire quelque chose pour créer un effet de panoramique.
Questions connexes
- 1. Delphi 2009 - Propriété de type Enum personnalisé dans l'inspecteur d'objets
- 2. "Les bases de Delphi" dans Delphi 2009
- 3. La propagation d'événements Flex 3 sur un composant personnalisé composite?
- 4. Problème de rafraîchissement de composant personnalisé avec Delphi
- 5. Comment faire disparaître un composant dans le concepteur de formulaires?
- 6. PNG dans Delphi 2009 Imagelists et images
- 7. Comment faire un défilement de la souris par programme?
- 8. Comment puis-je gérer un composant personnalisé dans Flex?
- 9. Delphi 2009 et la mémoire de copie
- 10. Erreur de refactorisation Delphi 2009
- 11. Comment dans Delphi 2009 rediriger la console (stin, sterr)?
- 12. Installer la dernière version d'Indy 10 sur Delphi 2009
- 13. DeCAL et Delphi 2009
- 14. Comment faire un chargeur Ajax suivre la souris?
- 15. Javascript pour agrandir et faire un panoramique d'une image
- 16. Comment faire un affichage personnalisé pour un datasteur jQuery?
- 17. Ajout d'effets à un composant personnalisé flex
- 18. Comment faire un incrément/décrément DateTimePicker sur la molette de la souris
- 19. Comment réparer Delphi 2009 Data Explorer?
- 20. Comment utiliser les génériques C# dans Delphi 2009/2010?
- 21. Comment configurer le débogueur JIT dans Delphi 2009?
- 22. Utiliser l'option debug dcus dans Delphi 2009?
- 23. Conversion de la valeur Integer en AnsiString dans Delphi 2009
- 24. Peindre des chaînes RTF/HTML dans un composant swing personnalisé
- 25. Dessin sur un DataModule dans Delphi
- 26. Meilleur Algorithme pour paire clé/valeur où la clé est un int64 dans Delphi, pré Delphi 2009?
- 27. Comment déclarer des variables statiques dans Delphi 2009?
- 28. Comment faire un UserControl avec un DefaultBackColor personnalisé?
- 29. La propriété DoubleBuffered ajoutée à la dfm dans Delphi 2009 n'existe pas dans Delphi 2007
- 30. FitNesse pour Delphi 2006/Delphi 2007/Delphi 2009
Comme je l'ai mentionné, j'essaie d'interfacer avec le support panoramique intégré. – MarkF