Comment récupérer un bitmap enregistré dans un fichier .res
Bonjour
Je suis un programmeur amateur qui essaye de faire travailler les quelques neurones qui lui restent, pendant sa retraite.
J'ai créé plusieurs 'Réussites' en Delphi 7 que j'aimerais transcrire en Lazarus.
Pour intégrer les 52 cartes au format 'bitmap' dans le fichier .res j'ai utilisé 'ResourceHacker' et c'est en essayant de les afficher dans une image que j'ai des problèmes.
Sous Delphi :
Code:
1 2
| Bmp.Handle:=LoadBitmap(HInstance,PChar(Nom));
Image1.Canvas.Draw(x,y,Bmp); |
me dessine le bitmap enregistré sous le nom de'Nom' dans le fichier .res, dans l'image Image1 en x,y.
Est-ce que quelqu'un pourrait me donner la méthode permettant de faire la même chose sous Lazarus ?
Je remercie d'avance celui (ou celle) qui voudra bien se pencher sur mon problème.
Comment récupérer un bitmap enregistré dans un fichier .res sous Lazarus
Bonjour,
Un grand merci pour tes réponses aux difficultés d'un débutant en Lazarus.
J'ai déjà un problème pour créer le fichier .res,
Je veux que mon fichier ait pour nom: Cartes.res
Les cartes (pour un programme d'essai) ont pour nom*: A001, A002, A003, A004.
Les fichiers qui contiennent ces cartes sont les bitmap*: A001.bmp, A002.bmp, A003.bmp, A004.bmp.
Voilà comment j'ai procédé... où est l'erreur*?
avec le Bloc-Notes j'ai créé le fichier 'Cartes.rc' contenant quatre lignes*:
A001
A002
A003
A004
dans un même dossier j'ai copié les 4 fichiers .bmp le fichier Cartes.rc et le fichier lazres.exe
Avec 'Invite de commande' j'ai exécuté la ligne: lazres.exe Cartes.res Cartes.rc
Je trouve bien dans le dossier un fichier: Cartes.res de 1 ko mais vide quand je l'ouvre avec ResourcesHacker.
- A quel moment les fichiers .bmp sont-ils intégrés dans le fichier .res*? Est-ce que c'est lazres.exe qui se charge de cette compilation ou le programme d'essai au moment de sa compilation.
- Dans la commande*: LoadBitmapFromResource('coeur_as', BmpCoeurAs);
Comment dois-je la traduire dans mon programme d'essai*:LoadBitmapFromResource('A001', bmp1); où bmp1 serait le destinataire de la carte?
Comment récupérer un bitmap enregistré dans un fichier .res sous Lazarus
Rebonjour,
Je viens de recréer le fichier .res en ajoutant dans le fichier .rc l'extension bmp aux noms des cartes (A001.bmp...) mais ça ne change rien.
Lorsque je lance le programme d'essai j'ai un message:
Le fichier C:\lazarus\MesProjets\Cartes.res n'a pas l'air d'un fichier texte
Voulez-vous l'ouvrir quand-même
OK Arrêter Ignorer
Quand je choisis OK j'ai le message suivant du compilateur:
Cartes.rs(1,9) Fatal:Illegal characters "ÿ" ($FF)
Il y apparaît effectivement ces caractères dans la première ligne puis en deuxième ligne: Cartes suivi de A001.bmp...
Quant à la ligne : LoadBitmapFromResource('A001', bmp1);
je pensais qu'elle servait à récupérer la carte dans bmp1 pour pouvoir l'afficher ensuite avec:
image1:=bmp1.canvas.draw(x,y); ( par exemple mais non testé)
A+
Comment récupérer un bitmap enregistré dans un fichier .res sous Lazarus
Bonjour à tous,
J'ai le plaisir de vous annoncer que mon problème est résolu. Champagne....
Je voudrais remercier chaudement tous ceux qui ont participé à sa solution*: BeanzMaster, Roland Chastain, et Anapurna.
C'est très réconfortant de trouver une oreille attentive pour venir au secours d'un petit amateur.
J'avais épluché toute la littérature sur Lazarus sans trouver une méthode simple pour créer un fichier ressource.res.
Je pense qu'il serait utile pour d'autres amateurs comme moi de créer un tutoriel qu'on pourrait intituler*:*«*Créer un fichier.res contenant des Bitmaps et les afficher dans une application*».
Je suis prêt à le rédiger mais je ne sais pas comment m'y prendre et je n'ai pas de site internet.
Si quelqu'un est intéressé, j'autorise Le modérateur à lui communiquer mon adresse mail.
A+:D