IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

Comment faire un curseur de souris personnalisé [Windows]


Sujet :

Composants FMX Delphi

  1. #1
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut Comment faire un curseur de souris personnalisé
    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
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    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
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    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.

  4. #4
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    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.
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour et merci pour ce prompt retour.
    Citation Envoyé par Gouyon Voir le message
    Peut-être à mettre dans la FAQ ou en tutoriel, je ne sais pas.
    À 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.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    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);

  7. #7
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    À 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.
    Oui je pencherai moi aussi pour le tutoriel.

    Citation Envoyé par SergioMaster Voir le message
    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.
    Exact c'est un oubli de ma part je vais y remédier

    Citation Envoyé par SergioMaster Voir le message
    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.
    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

    Citation Envoyé par pprem Voir le message
    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.
    Pas faux je vais faire la modification.
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment faire un Curseur dans Proc Stockée
    Par Cazaux-Moutou-Philippe dans le forum Firebird
    Réponses: 1
    Dernier message: 20/01/2009, 12h08
  2. Réponses: 2
    Dernier message: 14/06/2007, 11h42
  3. Réponses: 4
    Dernier message: 30/05/2005, 10h29
  4. Multiple Proc stocké + Curseur Comment faire
    Par superfly dans le forum Oracle
    Réponses: 17
    Dernier message: 14/12/2004, 22h43
  5. Comment masquer le curseur de la souris ?
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/06/2002, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo