Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1343 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Charger une image depuis un stream... pkoi ca foire avec un TPicture ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Charger une image depuis un stream... pkoi ca foire avec un TPicture ?

n°453617
Tetedeienc​h
Head Of God
Posté le 10-07-2003 à 14:25:28  profilanswer
 

je m'explique.
 
je suis les instructions de la bas :
 
http://www.delphicollection.com/pu [...] source.htm
 
Effectivement ca marche bien quand j'utilise un TImage.
 
maintenant, j'aimerai charger l'image dans une variable TPicture.
 
je la déclare donc  
 
var
  Form1: TForm1;
  LaunchTestOnPic : TPicture;
 
Et ensuite je lui fait charger le stream :
 
LaunchTestOnPic.Bitmap.LoadFromStream(RS);
 
 
Comme ils ont dit dans le lien.
 
Et pourtant, j'ai une magnifique exception... pourquoi ?

mood
Publicité
Posté le 10-07-2003 à 14:25:28  profilanswer
 

n°453620
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-07-2003 à 14:26:41  profilanswer
 

- c'est quoi l'exception que t'as
- t'as initialisé ton stream comment ?
- t'as initialisé ton TPicture comment ?


Message édité par antp le 10-07-2003 à 14:28:12

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°453627
Tetedeienc​h
Head Of God
Posté le 10-07-2003 à 14:28:07  profilanswer
 

Je fais comme le lien :
 

Code :
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var
  3.   //We need a stream to read our resource
  4.   RS : TResourceStream;
  5. begin
  6.   //Open resource item named "Clouds"
  7.   RS := TResourceStream.Create(HInstance,'ImageTest',RT_RCDATA);
  8.   try
  9.     //Load our Image from our ResourceStream
  10.     LaunchTestOnPic.Bitmap.LoadFromStream(RS);  //Load the bitmap from our stream
  11.   finally
  12.     //Free the memory used for our stream
  13.     RS.Free;
  14.     end;
  15. end;


 
Je remplace ma variable TPicture  par un Timage.Picture , ca marche impec, c'est la que je calcule pas.
 
J'ai un "Access violation blabla"...

n°453628
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-07-2003 à 14:29:01  profilanswer
 

ton TPicture il est créé comment ?
 

tetedeiench a écrit :

"Access violation blabla"...


 
blabla = quoi ? parce que parfois les adresses donnent une info utile :D


Message édité par antp le 10-07-2003 à 14:29:30

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°453631
Tetedeienc​h
Head Of God
Posté le 10-07-2003 à 14:30:38  profilanswer
 

euh OK :D
 
'Access Violation at address 00421533 in module "Project1.exe". Read of Address 0000000C'

n°453632
Tetedeienc​h
Head Of God
Posté le 10-07-2003 à 14:30:59  profilanswer
 

antp a écrit :

ton TPicture il est créé comment ?
 
 
 
blabla = quoi ? parce que parfois les adresses donnent une info utile :D


 
Ben vla mon code en entier, comme ca :D
 

Code :
  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, ExtCtrls, JvSpecialImage, StdCtrls, JvHtControls, JvComponent,
  6.   JvTransBtn, JvTransBtn2, ImgList, JvCtrls, jpeg, JvImage, Buttons,
  7.   JvSpeedButton;
  8. type
  9.   TForm1 = class(TForm)
  10.     JvHTLabel1: TJvHTLabel;
  11.     JvTransparentButton3: TJvTransparentButton;
  12.     JvTransparentButton1: TJvTransparentButton;
  13.     Image1: TImage;
  14.     JvImage1: TJvImage;
  15.     Image2: TImage;
  16.     procedure JvTransparentButton1MouseEnter(Sender: TObject);
  17.     procedure JvTransparentButton1MouseExit(Sender: TObject);
  18.     procedure JvTransparentButton3Click(Sender: TObject);
  19.     procedure FormCreate(Sender: TObject);
  20.   private
  21.     { Private declarations }
  22.   public
  23.     { Public declarations }
  24.   end;
  25. var
  26.   Form1: TForm1;
  27.   LaunchTestOnPic : TPicture;
  28. implementation
  29. {$R *.dfm}
  30. {$R MyRes.Res}
  31. procedure TForm1.JvTransparentButton1MouseEnter(Sender: TObject);
  32. begin
  33. JvHTLabel1.Visible := true;
  34. end;
  35. procedure TForm1.JvTransparentButton1MouseExit(Sender: TObject);
  36. begin
  37. JvHTLabel1.Visible := false;
  38. end;
  39. procedure TForm1.JvTransparentButton3Click(Sender: TObject);
  40. begin
  41. application.terminate();
  42. end;
  43. procedure TForm1.FormCreate(Sender: TObject);
  44. var
  45.   //We need a stream to read our resource
  46.   RS : TResourceStream;
  47. begin
  48.   //Open resource item named "Clouds"
  49.   RS := TResourceStream.Create(HInstance,'ImageTest',RT_RCDATA);
  50.   try
  51.     //Load our Image from our ResourceStream
  52.     LaunchTestOnPic.Bitmap.LoadFromStream(RS);  //Load the bitmap from our stream
  53.   finally
  54.     //Free the memory used for our stream
  55.     RS.Free;
  56.     end;
  57. end;
  58. end.


Message édité par Tetedeiench le 10-07-2003 à 14:31:37
n°453633
Tetedeienc​h
Head Of God
Posté le 10-07-2003 à 14:32:10  profilanswer
 

Je sais mes variables sont moches mais ce projet est la que pour tester avant d'aller dans le définitf :D

n°453634
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-07-2003 à 14:32:39  profilanswer
 

tetedeiench a écrit :

Read of Address 0000000C'  


 
pointeur valant nil...
 
je vois pas où tu initialises LaunchTestOnPic
T'as un pointeur et pas un seul create l'assignant


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°453637
Tetedeienc​h
Head Of God
Posté le 10-07-2003 à 14:34:55  profilanswer
 

antp a écrit :


 
pointeur valant nil...
 
je vois pas où tu initialises LaunchTestOnPic
T'as un pointeur et pas un seul create l'assignant


 
euh ouai faudrait ptet  que je fasse un create quelque aprt  effectivement :D

n°453643
Tetedeienc​h
Head Of God
Posté le 10-07-2003 à 14:40:44  profilanswer
 

Meme  avec le create ca merde.
 
Moi ce que je veux, c'est charger mes bitmaps de mon stream dans des  variables pour pouvoir les  swapper facilement dans mes boutons etc :/

mood
Publicité
Posté le 10-07-2003 à 14:40:44  profilanswer
 

n°453647
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-07-2003 à 14:44:55  profilanswer
 

utilise des TBitmap alors, c'est plus simple que de passer par des TPicture.
Et ensuite tu fais compo.***.Bitmap.Assign(unTBitmap); pour qu'il en copie l'image.


Message édité par antp le 10-07-2003 à 14:45:10

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°453648
antp
Super Administrateur
Champion des excuses bidons
Posté le 10-07-2003 à 14:46:04  profilanswer
 

heu au fait ta ressource RC_DATA là, c'est un bitmap ou un jpeg ?
 
pour charger un bitmap des ressources tu peux faire simplement  
leTBitmap.LoadFromResourceName(HInstance, 'nom')
 
pour un JPEG, fais plutôt
leTJPEGImage.LoadFromStream(...)
 
où leTJPEGImage est un TJPEGImage


Message édité par antp le 10-07-2003 à 14:48:54

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°453653
Tetedeienc​h
Head Of God
Posté le 10-07-2003 à 14:47:57  profilanswer
 

Bitmap.
 
meme avec un Tbitmap ca  foire :D  
 
Enfin je m'en suis sorti avec  des  TSTream mais bon :D
 
J'ai fait ca en fait :
 

Code :
  1. procedure TForm1.LoadBitmap (comp : TImage; name : String) ;
  2. begin
  3.   RS := TResourceStream.Create(HInstance,name,RT_RCDATA);
  4.   try
  5.     //Load our Image from our ResourceStream
  6.     comp.Picture.Bitmap.LoadFromStream(RS);  //Load the bitmap from our stream
  7.   finally
  8.     //Free the memory used for our stream
  9.     RS.Free;
  10.   end;
  11. end;


 
Comme cha cha swappe les bitmaps en déléteant les  streams. Et ca a l'air de marcher, donc je croise les doigts :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Charger une image depuis un stream... pkoi ca foire avec un TPicture ?

 

Sujets relatifs
Mettre une image dans une image ....[JS] superposer une image sur une autre (+ posit° de la sourie)
comment faire defilé 1 série d'image horizontalement ds son site??[HTML] Bouton Submit en image
[XHTML] Mettre une image de fond dans un div ou des cellules...Resize image?
PoP Up (no-resize) avec une image dedans !C possible de redimmentionner une image jpeg sous free?
[VB] Déplacer une image à la souris [résolu !][texture][opengl] inserer une simple image en 2D
Plus de sujets relatifs à : Charger une image depuis un stream... pkoi ca foire avec un TPicture ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR