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

Delphi Discussion :

Problème de curseurs


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Mars 2007
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 205
    Par défaut Problème de curseurs
    Bonjour,

    bien que pratiquant Delphi depuis longtemps, je n'ai que des connaissances superficielles.
    J'utilise des curseurs personnels d'une première façon, avec LoadCursorFromFile (qui marche).
    Mais je butte sur une seconde façon de faire avec LoadCursor(que je n'arrive pas à faire marcher, bien qu'ayant consulté plusieurs documentations).
    Voici un exemple de mon code. Le premier curseur marche bien. Le second n'apparait pas. La resource stylo2.res a été crée avec l'éditeur de Delphi et est dans le même dossier que les autres resources (ainsi que stylo1.cur pour le premier curseur). Le compilateur ne signale pas d'erreur.
    Merci beaucoup à qui pourrait me donner une piste pour trouver l'explication.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    const
      crCurseur1=1;
      crCurseur2=2;
    implementation
    {$R *.DFM}
    {$R stylo2.res}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
         Screen.Cursors[crCurseur1] := LoadCursorFromFile(PChar(ExtractFilePath(ParamStr(0))+'stylo1.cur'));
         Shape1.cursor:=crCurseur1;     { Le curseur n°1 apparait bien }
         Screen.Cursors[crCurseur2] := LoadCursor(HInstance,'stylo2.res');
         Shape2.cursor:=crCurseur2;     { Le curseur n°2 n'apparait pas. A sa place, c'est le curseur par défaut qui apparait }
    end;

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Déjà si tu postais dans le forum Delphi Win32 (cf. PChar) ce serait plus mieux (pour toi)
    Je déplace.

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Bonjour


    la ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Screen.Cursors[crCurseur2] := LoadCursor(HInstance,'stylo2');
    avec la chaine 'Stylo2' qui est le nom de ton curseur dans le fichier .Res.

    Par contre, pour prendre en compte les changements, tu devras fermer puis réouvrir ton application.


    Penses au Tag ou :delestage:
    ---

  4. #4
    Membre très actif
    Inscrit en
    Mars 2007
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 205
    Par défaut
    Bonjour Fabrice ROUXEL 1

    merci d'avoir pensé à mon problème et pour la réponse.
    Malheureusement, cela ne marche pas. D'ailleurs, c'est la première syntaxe que j'avais essayée : LoadCursor(HInstance,'stylo2');
    Ensuite, à tout hazard, j'avais essayé : LoadCursor(HInstance,'stylo2.res'); ce qui était resté lorsque j'ai copié le code pour le mettre sur le forum.
    J'ai d'ailleurs fait beaucoup d'autres essais sans succès.
    Je dois probablement faire une grossière erreur, peut-être à la création de la ressource, ou dans la liaison de telle sorte que le HInstance ne correspond pas ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Bonjour

    Au niveau du code tout est bon en remplaçant LoadCursor(HInstance,'stylo2.res'); par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LoadCursor(HInstance,'stylo2');
    Sinon l'erreur se situe peut être au niveau de la localisation de la ressource
    par exemple en admettant que la ressource est situé à la racine du disque c:\
    Il faudra écrire :
    Pour la création de la ressource, par exemple dans l'éditeur d'image du menu outil, on choisi Fichier->Nouvelle...->Ressources(.res)
    Dans le treeview: clic droit nouveau... -> CURSEUR
    tu renommes le curseur en STYLO2. Tu sauvegardes la ressource.Tu sauvegardes le projet, tu le fermes puis le réouvres.

    Puis normalement ton curseur doit s'afficher.

    Voila pour les explications détaillées.

    Bon développement.

  6. #6
    Membre très actif
    Inscrit en
    Mars 2007
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 205
    Par défaut
    Merci Fabrice ROUXEL 1

    L'indication de fermer le projet, puis le rouvrir était essentielle pour commencer à comprendre où celà coinçait.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/03/2008, 12h36
  2. [Oracle][Spring] Problème de curseurs
    Par romaintaz dans le forum JDBC
    Réponses: 1
    Dernier message: 21/08/2006, 16h06
  3. Problème de Curseur
    Par chremy dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/07/2006, 19h17
  4. [MSDE] Problème de curseur dans une SP
    Par papouAlain dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/07/2005, 12h28
  5. [Trigger] Problème de curseur
    Par Superstivix dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/06/2004, 11h30

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