Lors du dessin de mon composant, je souhaite me baser sur un bitmap que je copie la ou il faut.
Je voudrias bien sur que l'image en question soit inclue dans mon unitee.
Il me semble que les DCU n'uncluent pas des .res dans leur code ... il faut donc les deplacer avec.
Pouvez vous confirmer ce point ? et m'aider a trouver uen solition pour inclure une image sans Ressource ? genre avec les donnees binaire $XXXXXXXXXXXXXXX...XXXX tels que le fait Delphi dans les Dfm ....
[EDIT] Code complet solution du probleme :
Programe utilitaire :
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 unit StreamStr; interface Uses SysUtils, Classes; {==============================================================================} { definition des procedures publiques } {==============================================================================} Function StreamToStr(AStream : TStream) : String; PRocedure StrToStream(AString : String; AStream : TStream); implementation {==============================================================================} { StreamToStr : Transforme un stream en une chaine Hexadecimale } {==============================================================================} Function StreamToStr(AStream : TStream) : String; Var i : Integer; b : Byte; Begin Result := ''; For i := 1 to AStream.Size do Begin AStream.ReadBuffer(b, SizeOf(b)); Result := Result + IntToHex(b, 2); End; End; {==============================================================================} { StrToStream : Cree un stream a partir d'une representation en chaine haxadecimale } {==============================================================================} PRocedure StrToStream(AString : String; AStream : TStream); Var Index : Integer; b : byte; Size : Integer; Begin Size := Length(AString); AStream.Size := Size div 2; AStream.Position := 0; Index := 1; While Index+1 <= Size do Begin b := StrToInt('$' + AString[Index] + AString[Index+1]); AStream.Write(b, sizeof(b)); Index := Index+2; End; AStream.Position := 0; // Replacement en debut de stream pour la manipulation. End;
- Charger un fichier dans un Stream (LoadFromFile)
- Appeler StreamToStr
- Afficher la chaine dans un memo.
Programme gerant ce type de ressoruce :
- Copier la chaine du memo de l'utilitaire precedant.
- Coller la chaine dans uen focntion en l'affectant a la variable Result (pensez a decouper sur plusieurs lignes la chaine)
- A l'utilisation appeler StreamToStr
- Manipuler le Stream comme si il afait ete charge depuis un loadFromFile ou un LoadFromRessourceName.
Bonne Prog !
Partager