Bonjour,
Voil� je d�veloppe actuellement une application de type VNC, avec affichage d'�cran � distance. J'avais d�j� un probl�me au niveau de la gestion m�moire serveur, mais maintenant c'est au niveau du client (celui qui affiche les images � distance) o� la taille du processus en m�moire augmente constamment.
Donc en fait mes images sont envoy�es d'un Composant StreamServer vers un StreamClient (NMStrm) . Quand celui-ci re�oit des donn�es on execute ce code :
Donc en fait j'ai modifi� le constructeur du thread afin de passer en param�tre le flux entrant. Et voici le code du thread en lui m�me :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 Affichage *thread_affiche = new Affichage(false,strm); delete strm,thread_affiche;
Donc en fait le flux rentrant est charg� dans un objet de type JPG et ensuite affich� dans un Paintbox. je pense avoir bien lib�r� la m�moire a chaque �tape quelqu'un aurait donc t-il une solution svp ? Merci d'avance !!
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 TMemoryStream *flux; __fastcall Affichage::Affichage(bool CreateSuspended,TStream *strm) : TThread(CreateSuspended) { FreeOnTerminate=true; flux = new TMemoryStream(); flux->LoadFromStream(strm); delete strm; } __fastcall Affichage::Affichage(bool CreateSuspended) : TThread(CreateSuspended) { } void __fastcall Affichage::Execute() { TJPEGImage *affiche = new TJPEGImage(); affiche->LoadFromStream(flux); delete flux; Form12->PaintBox1->Canvas->Draw(0,0,affiche); delete affiche; Terminate(); }
Partager