Cette foi je cherche à stoker des images dans mon .EXE c'est a dire qu'a partir d'un SEUL Timage je puisse mettre des images qui ne sont pas dans les dossiers du disque dure mai dans l'executable en sorte qu'on ne puisse pas voir l'image sans executer le prog.
Je croi que Timagelist permet de faire ça mais je n'ai pas réussi a le faire marcher à part avec des images bmp et encore ça fait de gros pixels...
voila je voulai savoir comment faire ça pck j'en ai mar de devoir me trimballer les photos qui servent à l'executable.
Merci pour vos futurs réponse
Si je me sui mal exprimé et que vous avez mal compri dites le moi.
Salut, il faut que tu crées un fichier de ressources, dans lequel tes images sont stockées.
On peut mettre des images au format bmp, jpg, gif et png (peut-être d'autres je ne sais pas).
Je ne suis pas devant Delphi là, demain, je te donne la syntaxe du fichier à créer qui servira de sources au fichier de ressources.
Ainsi que le code pour récupérer l'image depuis ton application.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Crées un fichier d'extension .rc, dedans mets du code ressemblant à ceci :
STRINGTABLE
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
BEGIN
1, "Ma chaine de caractère"
END
image1 PNG "APropos\MonImage.png"
icoBMP BITMAP "UnBMP.bmp"
imSablier GIF "Sablier.gif"
avec les images en chemin relatif ou chemin absolu.
Dans une console DOS, vas dans le répertoire où se trouve ton fichier .rc, puis tappes :
BRCC32 monfichier.rc
Si tout est bon, ça te créera un monfichier.RES.
Ce fichier .RES, copies le dans le répertoire de ton application et des sources.
Dans le fichier de ton projet, .dpr, rajoutes après le {$R *.res} cette ligne :
{$R monfichier.RES}
Pour mettre l'image dans ton TImage, fais le code suivant :
var
Res : TResourceStream;
Png : TPNGObject;
begin
// Image à gauche
Res := TResourceStream.Create( HInstance, 'imFond', 'PNG' );
Png := TPNGObject.Create;
Png.LoadFromStream( Res );
imFond.Picture.Assign( Png );
Png.Free;
Res.Free;
Ceci pour un PNG, remplace le TPNGObject par un TGIFImage pour utiliser un GIF.
Il te faut récupérer sur le net les objets pngimage et gifimage et les installer dans Delphi pour les utiliser.
Pour lire le texte dans ton code, fais le code suivant :
ShowMessage( LoadStr( 1 ) );
Les chaines de caractères peuvent être internationnalisées avec LANGUAGE mais je n'ai jamais fait.
Bon code.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Salut, tu as réussi à stocker tes images en ressource ou pas ?
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Ba en fait j'essay mai j'arrive pas.
j'essay encore peu etre un jour j'y arriverai, en fait j'arrive pa a mettre une photo stocké dans un fichier .res dans delphi dans un Timage... tu fait comment ?
Je le fais comme indiqué au dessus.
D'abord, tu dois créer un fichier .rc, dedans tu indiques quelles images tu souhaites insérer dans ton fichier de ressource, en spécifiant leur nom, leur type et leur emplacement.
Puis tu compiles le fichier .rc pour obtenir un fichier de ressource .RES contenant les images.
Ce fichier obtenu, tu le mets dans le répertoire où se trouvent les sources de ton application.
Puis tu inclus le fichier dans ton projet (dans le .dpr).
Enfin tu récupères l'image à partir de son nom et la mets dans le TImage.
Pour les détails de chaque étape, voir mon post au dessus.
Si tu bloques à une étape, dis quelle est l'étape où tu coinces.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
bon sa y est g réussi a faire la moitier à peu près : merci bcp
Mais la je bloque pck je travail tjr avec des .jpg, des .ico et tu ne ma pas montré le code pour mettre dans le .dpr les images a ce format.
tu ma montré juste pour les png avec ce code :
var
Res : TResourceStream;
Png : TPNGObject;
begin
// Image à gauche
Res := TResourceStream.Create( HInstance, 'imFond', 'PNG' );
Png := TPNGObject.Create;
Png.LoadFromStream( Res );
imFond.Picture.Assign( Png );
Png.Free;
Res.Free;
quesque je doi changer pour mettre les formats que je tai di juste avant ?
Il faut que tu remplaces le TPNGObject par celui qui est utilisé pour les JPG.
Je ne connais pas quel objet il faut utiliser pour les JPG.
Je vais faire des recherches pour voir ce qu'il faut faire.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Il faut que tu rajoutes JPEG en uses, puis voici le code :
procedure Tfrm_Main.Button1Click(Sender: TObject);
Var
jpg : TJPEGImage;
begin
jpg := TJPEGImage.Create;
jpg.LoadFromResourceName(hInstance, 'MonImage');
Image1.Picture.Graphic := jpg;
jpg.Free;
end;
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].