J'ai regardé et elle est belle et bien là, mais j'ai remarqué que l'image est nommée 0 et qu'elle est dans bit1 qui lui est dans BITMAP. Je sais pas si ça a de l'importance :?.
Version imprimable
J'ai regardé et elle est belle et bien là, mais j'ai remarqué que l'image est nommée 0 et qu'elle est dans bit1 qui lui est dans BITMAP. Je sais pas si ça a de l'importance :?.
Bon je vous envoi les deux sources. Peut être qu'il y a quelquechose que je n'ai pas fait.
Pièce jointe 8367
tu as simplement oublié de créer le répertoire BITMAP dans le resources du projet lecture.
http://img181.imageshack.us/img181/6272/ddkv9.jpg
chez moi cela marche avec cette modif
Et comment fait on pour créer un répertoire dans le resources du projet.
Finalement vous devez tout me montrer :mouarf: .
Mais pourquoi as-tu deux executable ????
Normal qu'il ne trouve pas ton image dans la ressource, elle est dans le 1er project1: soit tu renome tes exe, ou ta procedure lecture tu la met dans le meme exe....
Vraiment je ne comprend pas....
C'est peut etre moi qui me trompe mais je voit pas ca comme ca.
Le premier programme mets les ressources dans le deuxieme. Le deuxieme cherche les ressources dans lui-même allors il les trouve.
Bon ca y est j'ai compris......:aie:
Je me plonge dedans et je te rend compte, si j'ai le temps...
Visiblement lui a ajouté dans Project1.res une image bidon, juste pour avoir son "répertoire"Citation:
Envoyé par poly128
Mais il me semble que ça n'a rien à voir : les "répertoires" sont juste une façon de classifier et de retrouver plus facilement la ressource qu'on cherche.
dvarrel, peux-tu confirmer que sans ça ne fonctionne pas et qu'avec ça fonctionne ?
oui tout a fait, il faut que le répertoire soit créé, et qu'il contienne un fichier quelconque, sinon la ressource n'est pas ajoutée à l'exe (ou pas au bon endroit cela reste à vérifier) voir ma capture d'écran.Citation:
Envoyé par sjrd
j'ai fait l'essai avec son appli cela fonctionne très bien.
@poly128 : c'est une très bonne idée que de tout intégrer : il existe un programe de ce genre appellé diaporama il me semble.
menu projet puis resources puis clic droit !Citation:
Envoyé par poly128
Met le nom de la ressource en MAJUSCULE...Citation:
Envoyé par poly128
Le write le laisse passer mais le read ne trouvera jamais un
nom de ressource en minuscule.
il n'y a biensûr aucune doc qui le mensionne mais c'est comme ca que j'ai
moi-même vécu l'inoubliable exprience de travailler avec les ressources!
Merci, Eric Boisvert a trouvé, il fallait mettre le nom en majuscule. Mais je n'ai pas essayer la méthode a dvarrel peut etre qu'elle marche aussi bien. Quoi qu'il en soit merci a sjrd sans lui je n'aurait jamais réussi. :mrgreen:
Et oui c'est encore moi et avec le même sujet :mouarf:
J'ai enlevé le résolu parceque j'ai un petit souci avec win98. Lorceque je fait
rouler mon programme sur xp, pas de problème, tout va bien mais avec win98, il ne met pas les ressource dans l'exe cible. C'est là que je me suis dit que c'était peut etre les fonctions qui mette les ressource dans l'exe cible
qui ne sont pas compatible avec win98. Allors ma question: Est-ce-que ces
fonction sont compatible avec win98?
Code:
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119 {$REGION 'Modification des ressources'} {---------------------------------} { Ajout-suppression de ressources } {---------------------------------} {$IFDEF MSWINDOWS} {* Débute la mise à jour des ressources d'un fichier module Tout appel à BeginUpdateRes doit être compensé par un appel à EndUpdateRes. @param FileName Nom du fichier module @return Handle de ressources *} function BeginUpdateRes(const FileName : string) : integer; begin // Appel de Windows.BeginUpdateResource Result := BeginUpdateResource(PChar(FileName), False); // Si Result = 0, il y a eu une erreur API if Result = 0 then raise EUpdateResError.Create; end; {* Ajoute une ressource @param ResHandle Handle de ressources obtenu par BeginUpdateRes @param ResName Nom de la ressource à ajouter @param Resource Flux contenant la ressource @param ResType Type de ressource *} procedure AddResource(ResHandle : integer; const ResName : string; Resource : TStream; const ResType : string = 'RCDATA'); var MemRes : TMemoryStream; MustFreeRes, OK : boolean; begin MustFreeRes := False; // On met dans MemRes un flux mémoire qui contient les données de la ressource if Resource is TMemoryStream then MemRes := Resource as TMemoryStream else begin MemRes := TMemoryStream.Create; MemRes.LoadFromStream(Resource); MustFreeRes := True; end; // Appel de Windows.UpdateResource OK := UpdateResource(ResHandle, PChar(ResType), PChar(ResName), 0, MemRes.Memory, MemRes.Size); // On supprime le flux mémoire si on l'a créé if MustFreeRes then MemRes.Free; // Si UpdateResource a renvoyé False, il y a eu une erreur if not OK then raise EUpdateResError.Create; end; {* Supprime une ressource @param ResHandle Handle de ressources obtenu par BeginUpdateRes @param ResName Nom de la ressource à supprimer *} procedure DelResource(ResHandle : integer; const ResName : string); begin // Appel de Windows.UpdateResource if not UpdateResource(ResHandle, '', PChar(ResName), 0, nil, 0) then // Si UpdateResource a renvoyé False, il y a eu une erreur raise EUpdateResError.Create; end; {* Termine la mise à jour des ressources d'un fichier module @param ResHandle Handle de ressources obtenu par BeginUpdateRes @param Cancel Indique s'il faut annuler les modifications faites *} procedure EndUpdateRes(ResHandle : integer; Cancel : boolean = False); begin // Appel de Windows.EndUpdateResource if not EndUpdateResource(ResHandle, Cancel) then // Si EndUpdateResource a renvoyé False, il y a eu une erreur raise EUpdateResError.Create; end; {* Ajoute une ressources à un fichier module @param FileName Nom du fichier module @param ResName Nom de la ressource à ajouter @param Resource Flux contenant la ressource @param ResType Type de ressource *} procedure AddResToFile(const FileName, ResName : string; Resource : TStream; const ResType : string = 'RCDATA'); var ResHandle : integer; begin ResHandle := BeginUpdateRes(FileName); try AddResource(ResHandle, ResName, Resource, ResType); EndUpdateRes(ResHandle); except try EndUpdateRes(ResHandle, True) except end; raise; end; end; {* Supprime une ressources d'un fichier module @param FileName Nom du fichier module @param ResName Nom de la ressource à supprimer *} procedure DelResInFile(const FileName, ResName : string); var ResHandle : integer; begin ResHandle := BeginUpdateRes(FileName); try DelResource(ResHandle, ResName); EndUpdateRes(ResHandle); except try EndUpdateRes(ResHandle, True) except end; raise; end; end; {$ENDIF} {$ENDREGION}
Tiens oui apparemment il y a des remarques dans l'aide sur BeginUpdateResource :
Va voir dans l'aide pour suivre le lien correspondant.Citation:
RemarksWindows 95/98/Me: BeginUpdateResourceW is supported by the Microsoft® Layer for Unicode (MSLU). To use this, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows 95/98/Me Systems.
J'ai été ou tu a dit, j'ai télécharger le fichier qu'ils disaient mais quest que j'en fait :oops: ? Le lien pour télécharger le fichier: http://msdn.microsoft.com/library/de...me_systems.asp