Bonjour à tous
Autant sur VCL on trouve facilement comment faire des curseurs de souris personnalisé autant sous FMX c'est le vide (à moins que je n'ai très mal cherché).
Du coup si quelqu'un sait faire je suis preneur
Bonjour à tous
Autant sur VCL on trouve facilement comment faire des curseurs de souris personnalisé autant sous FMX c'est le vide (à moins que je n'ai très mal cherché).
Du coup si quelqu'un sait faire je suis preneur
Bonjour,
cette vidéo devrait te mettre sur la voie
je n'ai pas vraiment tout capté, juste survolé, c'est environ à la moitié de la vidéo que son code semble changer IFMXCursorService pour y ajouter des curseurs personnalisés.
A te lire
Alors, une petite plongée dans le code du FMX.TForm à la recherche de "cursor" et effectivement ça passe par un service de plateforme pour faire les modifications, mais en pratique ça reste transparent. Il suffit d'attribuer le handle du curseur référencé dans Windows à la propriété Cursor de la fiche ou du composant.
Le référencement d'un nouveau curseur se fait par l'API Windows de la même façon qu'en VCL par LoadCursor qui se trouve dans l'unité WinAPI.Windows
Tu peux regarder ce qui est fait dans FMX.Platform.Win sur la partie implémentation de l'interface IFMXCursorService, dans la création de la fiche ou lors du chargement d'un curseur.
Par contre il faudra faire ta propre implémentation de l'interface ou coder le changement à la main car le SetCursor est fermé à la liste codée en dur dans les sources. Ca pourrait faire l'objet d'une demande sur QP.
Après lecture et décorticage de la vidéo j'ai fait un petit billet sur mon blog qui résume la procédure à suivre.
curseur-souris-personnalie-fmx
Peut être à mettre dans la FAQ ou en tutoriel je ne sais pas.
Bonjour et merci pour ce prompt retour.
À mon avis plutôt tutoriel (même si c'est un peu plus "galère" comme média) car ce n'est pas vraiment une question posée fréquemment.
Pour information, j'ai ajouté les tags Delphi,FMX,cursor mais je trouve que tu devrais aussi citer la vidéo qui t'a servie.
Alcatîz a tagué le sujet en [Windows] (merci), logique puisque tu utilises winapi.windows.
Mais je me pose quand même la question de la portabilité sur les autres desktops.
Juste un "détail" sur le code : tu pars du principe qu'il y avait déjà un IFMXCursorService, mais on ne sait jamais, et vu que tu ne conditionne rien dans ton code à la plateforme Windows rien n'empêche quelqu'un de s'en servir ailleurs et planter son application.
Dans ton implémentation de TMyCursorService.SetCursor mets plutôt
Code : Sélectionner tout - Visualiser dans une fenêtre à part else if assigned(FOldWinPlatformService) then FOldWinPlatformService.SetCursor(ACursor);
Oui je pencherai moi aussi pour le tutoriel.
Exact c'est un oubli de ma part je vais y remédier
En fait le seul que je vois c'est le mac pour les autres système c'est le doigt qui fait la souris et de mon point de vue il n'y a pas vraiment de nécessité de faire apparaitre un curseur
Pas faux je vais faire la modification.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager