1. #1
    Membre confirmé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2014
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 315
    Points : 598
    Points
    598

    Par défaut L'image du curseur n'est pas chargée

    Bonjour à tous,

    Dans le même fichier Images.rc j'ai chargé un ensembles d'alias vers des images sprites(PNG)
    qui sont retrouvées et ajoutées et des images cursors(CUR) qui ne sont pas chargées.
    Pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    BCImageButton1.LoadFromBitmapResource('SpGraphe',RT_RCDATA) ; //L'image est chargée.
     
     Cur:= TCursorImage.Create;  //Cur:TCursorImage
     
      Cur.LoadFromResourceName(HINSTANCE,'BleuPapillon')
     
       Screen.Cursors[1]:= Cur.ReleaseHandle;
     
      Cur.Free;
      Image1.Cursor:=1; //L'image n'est pas chargée, avec message: [TCustomIcon.LoadFromResource] The resource ''BleuPapillon''
                                   //was not found.

  2. #2
    Expert éminent
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    6 191
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 6 191
    Points : 8 450
    Points
    8 450

    Par défaut

    Citation Envoyé par FOCUS77 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BCImageButton1.LoadFromBitmapResource('SpGraphe',RT_RCDATA) ; //L'image est chargée.
     
     Cur:= TCursorImage.Create;  //Cur:TCursorImage
     
      Cur.LoadFromResourceName(HINSTANCE,'BleuPapillon')
     
       Screen.Cursors[1]:= Cur.ReleaseHandle;
     
      Cur.Free;
      Image1.Cursor:=1; //L'image n'est pas chargée, avec message: [TCustomIcon.LoadFromResource] The resource ''BleuPapillon'' was not found.
    Inverse les deux dernières lignes, comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Image1.Cursor:=1;
      Cur.Free;
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #3
    Membre confirmé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2014
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 315
    Points : 598
    Points
    598

    Par défaut

    Bonjour JP,

    Effectivement je les ai inversées mais j'ai toujours le message d'erreur.

  4. #4
    Expert éminent
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    6 191
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 6 191
    Points : 8 450
    Points
    8 450

    Par défaut

    Citation Envoyé par FOCUS77 Voir le message
    Effectivement je les ai inversées mais j'ai toujours le message d'erreur.
    Donc le machin ne trouve pas la ressource

    Voilà ce que j'utilise dans un projet fonctionnel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      crPointeur := TCursorImage.Create;
      try
        crPointeur.LoadFromResourceName(HInstance, 'grayviseur'); 
        Screen.Cursors[1] := crPointeur.ReleaseHandle;
        image.Cursor := 1; 
      finally
        FreeAndNil(crPointeur);
      end;
    La seule différence que je vois, c'est que mon nom est tout en minuscules, et j'ai dans un coin de la tête un soupçon de vague vieux souvenir d'avoir souffert avec ces histoires de maj/min...
    Essaye de passer tout le nom en MAJ ou en min, dans le code et dans la ressource.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  5. #5
    Membre confirmé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2014
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 315
    Points : 598
    Points
    598

    Par défaut

    Bonsoir JP,

    J'ai tous refais en minuscule mais le message persiste.
    moi je pense qu'il faut modifier cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bleupapillon RCDATA "bleupapi.CUR"

  6. #6
    Expert éminent
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    6 191
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 6 191
    Points : 8 450
    Points
    8 450

    Par défaut

    Citation Envoyé par FOCUS77 Voir le message
    Bonsoir JP,

    J'ai tous refais en minuscule mais le message persiste.
    moi je pense qu'il faut modifier cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bleupapillon RCDATA "bleupapi.CUR"
    Je ne sais pas, je passe la main, moi j'utilise un fichier .res.

    Essaye quand même tout en majuscules (c'est comme ça dans mon fichier .res).
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Membre expert Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2011
    Messages
    2 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2011
    Messages : 2 368
    Points : 3 985
    Points
    3 985

    Par défaut

    Citation Envoyé par FOCUS77 Voir le message
    Bonsoir JP,

    J'ai tous refais en minuscule mais le message persiste.
    moi je pense qu'il faut modifier cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bleupapillon RCDATA "bleupapi.CUR"
    C'est pas plutôt
    bleupapillon CURSOR "bleupapi.CUR"
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  8. #8
    Membre confirmé

    Homme Profil pro
    Amateur Passionné
    Inscrit en
    septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : septembre 2015
    Messages : 304
    Points : 613
    Points
    613

    Par défaut

    Salut essayes ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    implementation
     
    {$R *.lfm}
    {$R CURSORS.RES}
     
    function LoadCursorFromRes(CursorName:String):THandle;
    var
       Cur: TCursorImage;
    begin
       Cur := TCursorImage.Create;
       Cur.LoadFromResourceName(HInstance,CursorName);
       result := Cur.ReleaseHandle;
       Cur.Free;
    end;
     
    procedure TMainForm.FormCreate(Sender: TObject);
    begin
      Screen.Cursors[crRotate]  := LoadCursorFromRes('ROTATE');
      Screen.Cursors[crZoom]    := LoadCursorFromRes('ZOOM');
      ect....
     
      Screen.Cursor := crRotate;
    end;
    A+

    EDIT : Pour créer le fichier res j'utilise XN Res Editor https://stefansundin.github.io/xn_resource_editor/

    Nom : 2017-12-04_163910.jpg
Affichages : 49
Taille : 65,0 Ko
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

  9. #9
    Membre confirmé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2014
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 315
    Points : 598
    Points
    598

    Par défaut

    Bonsoir à tous

    Désolé Messieurs j'ai tout essayé mais il y a toujours un message d'erreur qui revient.
    Ce que je ne comprends pas trop, c'est pourquoi avec la liaison dynamique des images, il n'y a pas d'erreur .

    Voilà le code d'origine qui contient 4 curseurs, 2 papillons et 2 coccinelles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    procedure TAccueil.FormCreate(Sender: TObject);
     var Cur1,Cur2: TCursorImage; C,P:Boolean;
    begin
     
      Cur1:= TCursorImage.Create;  Cur2:= TCursorImage.Create; C:=True; P:=True;
       if Trunc(Date) mod 2=0 then
      try
      Cur1.LoadFromFile('images\Curseurs\BleuPapi.CUR')
      except
      try
      Cur1.LoadFromFile('images\Curseurs\JaunePapi.CUR');
      except
      P:=False;
      end;
      end
     
      else
      try
      Cur1.LoadFromFile('images\Curseurs\JaunePapi.CUR')
      except
      try
      Cur1.LoadFromFile('images\Curseurs\BleuPapi.CUR');
      except
      P:=False;
     
      end;
      end;
      Screen.Cursors[1]:= Cur1.ReleaseHandle;
      Cur1.Free;
     if P=True then
      Image1.Cursor:=1;
     
      if Trunc(Date) mod 2=0 then
      try
      Cur2.LoadFromFile('images\Curseurs\JauneCocci.CUR')
      except
      try
      Cur2.LoadFromFile('images\Curseurs\RougeCocci.CUR');
      except
      C:=False;
      end;
      end
     
      else
      try
      Cur2.LoadFromFile('images\Curseurs\RougeCocci.CUR')
      except
      try
      Cur2.LoadFromFile('images\Curseurs\JauneCocci.CUR');
      except
      C:=False;
      end;
      end;
      Screen.Cursors[2] := Cur2.ReleaseHandle;
      Cur2.Free;
      if C=True then
      begin
       BCImageButton1.Cursor:=2; BCImageButton2.Cursor:=2; BCImageButton3.Cursor:=2;
       BCImageButton4.Cursor:=2; BCImageButton5.Cursor:=2; BCImageButton6.Cursor:=2;
      end;
      end;

  10. #10
    Membre confirmé

    Homme Profil pro
    Amateur Passionné
    Inscrit en
    septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : septembre 2015
    Messages : 304
    Points : 613
    Points
    613

    Par défaut

    Un truc bête mais Screen.Cursors[1] n'est t-il pas déjà utilisé ? . As-tu essayé comme dans mon exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Screen.Cursor[crPapillon] := Cur1.ReleaseHandle;


    Laisse tomber je viens d'écrire une bêtise, il faut que j'aille me coucher
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

  11. #11
    Membre expert Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2011
    Messages
    2 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2011
    Messages : 2 368
    Points : 3 985
    Points
    3 985

    Par défaut

    Pourquoi ne pas utiliser directement
    Screen.Cursors[1].LoadFromFile('moncurseur.cur')
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  12. #12
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    février 2014
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : février 2014
    Messages : 427
    Points : 1 867
    Points
    1 867

    Par défaut

    Bonjour.

    Deux façons d'ajouter des curseurs personnalisés :
    1) utiliser un fichier .LRS avec l'utilitaire LAZRES : consulte la FAQ
    https://lazarus.developpez.com/faq/?...-personnalises

    2) utiliser un fichier .RES (c'est la solution "moderne" depuis que Lazarus dédaigne les LRS).
    Ce fichier peut être créé avec un logiciel spécialisé (comme mentionné ci-dessus) OU tout simplement par LAZRES :
    Sous Windows, je crée un batch file (mycursors.bat) dans le répertoire des curseurs.
    Syntaxe ultra simple :

    c:\lazarus\tools\lazres mycursors.res bleupapi.cur jaunepapi.cur
    ou en donnant un nom à la ressource :
    c:\lazarus\tools\lazres mycursors.res bleupapi.cur=BPAP jaunepapi.cur=JPAP

    L'exécution du fichier .bat donne le fichier mycursors.res que tu déplaces dans le répertoire de ton application.
    Mycursors.res doit être mentionné au début de la section implémentation : {$R Mycursors.res }

    Ta procédure avec un TCursorImage est bonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cur.LoadFromResourceName(HINSTANCE,'bleupapi')
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cur.LoadFromResourceName(HINSTANCE, 'BPAP')
    Cordialement
    Thierry

  13. #13
    Membre confirmé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2014
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 315
    Points : 598
    Points
    598

    Par défaut

    Bonsoir à tous

    @ ThWilliam
    merci pour votre réponse qui m'a presque résolu le problème.

    a l'exécution de projet 'ProjCursors' il ya création d'un fichier 'ProjCursors.res' identique au fichier 'MyCursors.res'
    et un message d'erreur:
    Nom : cursors.png
Affichages : 36
Taille : 17,5 Ko

    avez vous des explications?

  14. #14
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    février 2014
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : février 2014
    Messages : 427
    Points : 1 867
    Points
    1 867

    Par défaut

    Fais-tu encore référence à ton fichier RC ?
    Si oui : as-tu supprimé dans ton fichier RC les lignes relatives aux curseurs ?
    Sinon, il y a duplication de ressources à charger. (RC + mycursors.res)

    Supprime aussi dans le sous-répertoire LIB de ton projet un éventuel fichier RES.
    Recompile par Exécuter/Créer.
    Cela devrait marcher.

    Cordialement
    Thierry

  15. #15
    Membre confirmé
    Avatar de FOCUS77
    Homme Profil pro
    Développeur informatique
    Inscrit en
    août 2014
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2014
    Messages : 315
    Points : 598
    Points
    598

    Par défaut

    Bonsoir Thierry

    Enfin j'ai refais l'exemple pas à pas et sans aucune difficulté j'ai réussi à l'exécuter.
    le message d'erreur précédent apparaît quand l'exécutable ne trouve pas le fichier RES
    car le fichier bat n'arrivait pas à le générer pour une erreur de frappe probablement .


    merci Thierry.



    voici une petite démo pour les membres intéressés.SpritesCursors.rar

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

Discussions similaires

  1. Quand mon site n'est pas chargé depuis le HTML
    Par Gregi dans le forum Intégration
    Réponses: 0
    Dernier message: 02/01/2010, 23h43
  2. ouvrir une image .JPG qui n'est pas dans la base
    Par merocean dans le forum Requêtes et SQL.
    Réponses: 19
    Dernier message: 12/02/2009, 22h22
  3. Réponses: 6
    Dernier message: 23/12/2006, 18h36
  4. MySQL n'est pas chargé par php
    Par elvan49 dans le forum PHP & MySQL
    Réponses: 2
    Dernier message: 23/11/2006, 17h14
  5. [JBoss] AppletBrowser n'est pas chargé
    Par mesmoh2005 dans le forum JBuilder
    Réponses: 1
    Dernier message: 15/02/2005, 17h35

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