cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010
-
20 oct. 2003 à 02:28
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010
-
21 oct. 2003 à 05:58
Antidote ;)
Voilà j'ai un petit probleme qui commence à devenir très embetant. (surement parce que je suis encore quelque peut novice)
Je m'explique:
en gros dès que j'utilise la fonction LoadFromFile avec en relatation direct un élément d'un packed record
j'ai à l'éxécution du programe et pas à la compilation une erreur fatal de type EAccessViolation.
que ce soit pour un TImage TStrings ou string provenant d'un packed record le résultat est le meme
que ce soit en écriture ou en lecture:
ex :
type
TExemple = packed record
Image: TImage;
texte: TSrings;
chemin: string;
....
end;
implementation
var
Ex : TExemple;
procedure ....
begin
Ex.texte.LoadFromFile(OpenDialog.FileName);
Ex.Image.Picture.LoadFromFile.( ... );
.....LoadFromFile(Ex.chemin);
....
end;
les trois exemple au dessus provoque la meme erreur EAccesViolation lors de leur l'éxécution.
Quelque chose m'échappe.
Cela vient t'il du fait que j'utilise un packed record ?
Aurait-je oublier une class dans les uses alors que la fonction LoadFromFile est bien reconnue ?
je ne voit pas si on pouvait m'éclairer je vous remercie à l'avance. :)
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 21 oct. 2003 à 00:40
Il semblerait que ton problème ne vienne pas de l'utilisation du packed record.
En passant par une TImage temporaire, ça marche.
Essaye donc ceci (pour TString, c'est peut-être du même ordre, pas le temps d'approfondir...)
var Ex: TExemple;
ImageTemp: TImage;
begin
if OpenDialog1.Execute then
begin
try
ImageTemp := TImage.Create(self);
Ex.chemin := OpenDialog1.FileName;
ImageTemp.Picture.LoadFromFile(Ex.chemin);
Ex.Image := ImageTemp;
Image1.Picture := Ex.Image.Picture; // pour vérifier
finally
ImageTemp.Free;
end;
end;
end;
cs_Antidote
Messages postés163Date d'inscriptionlundi 29 septembre 2003StatutMembreDernière intervention 8 mai 2010 21 oct. 2003 à 05:58
Antidote ;)
Merci pour ta réponse,
En fait j'ai réussi à contourner le probleme sur le meme principe.
mais en faisait passer mon image par un Timage que je cache à l'écran
Ta solution me semble encore meilleur surtout au niveau de la mémoire !