EReadError : 'Erreur de lecture du flux'

gengiskhan1985 Messages postés 11 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 1 mai 2007 - 21 nov. 2004 à 15:31
gengiskhan1985 Messages postés 11 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 1 mai 2007 - 21 nov. 2004 à 16:48
Voici une version simplifiée de mon code :

procedure TForm1.Button1Click(Sender: TObject);
var St,St2:TMemoryStream;
b:word;
Bmp:TBitmap;
begin
St:=TMemoryStream.Create;
St2:=TMemoryStream.Create;
b:=1;
St.WriteBuffer(b,2);

Bmp:=TBitmap.Create;
CaptureScreen(Bmp); //capture d'ecran
Bmp.SaveToStream(St2);

St.CopyFrom(st2,st2.Size);
// Diverses actions

st.Free;st2.Free;Bmp.Free;
end;

Je souhaite simplement stocker un mot au debut du flux avant de l'utiliser. Mais lors de l'execution du code ci dessus Delphi me renvoie EReadError : 'Erreur de lecture du flux'.
CaptureScreen fonctionne, mais dés que je met St.CopyFrom(st2,st2.Size); mon code ne fonctionne plus.

Merci pour toute aide.

2 réponses

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
21 nov. 2004 à 16:18
Pourquoi ne pas mettre :
St.LoadFromStream(st2);

à la place de :
St.CopyFrom(st2,st2.Size);

:question)

@+
Bonne Prog'
Nico

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! :)
0
gengiskhan1985 Messages postés 11 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 1 mai 2007
21 nov. 2004 à 16:48
LoadFromStream affecte toujours la valeur 0 à la propriété Position du flux source avant de copier le nombre d'octets indiqué par la propriété Size du flux source.

Donc si j'utilise LoadFromStream mes 2 octets du word 'b' mis au début disparaissent. Et j'aimerais garder ces infos.
0
Rejoignez-nous