PDA

View Full Version : سوال: مشکل در ارسال عکس در indy10



Mask
دوشنبه 26 دی 1390, 21:25 عصر
با سلام.
قبلا یه همچین کاری رو در دلفی بدون مشکل انجام میدادم.
اما نمیدونم چرا در دلفی Xe نمیشه.
اکه ممکنه دوستان یه نیگا بندازن.
ممنون.

سرور :

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
memrecieveStreamPic,s:TMemoryStream;
begin
memrecieveStreamPic:=TMemoryStream.Create;
try
AContext.Connection.IOHandler.ReadStream(memreciev eStreamPic);
memrecieveStreamPic.Position:=0;
image1.Picture.Graphic.LoadFromStream(memrecieveSt reamPic);
finally
memrecieveStreamPic.Free;
end;
end;

کلاینت :

procedure TForm1.Button1Click(Sender: TObject);
var St:TMemoryStream;
BMP: TBitmap;
Jpg: TJPEGImage;
c:TCanvas;
hosts:string;
ports:Integer;
begin
hosts:='127.0.0.1';
ports:=strtoint(Edit1.Text);

if IdTCPClient1.Connected then
IdTCPClient1.Disconnect;

IdTCPClient1.Host:=hosts;
IdTCPClient1.port:=ports;
IdTCPClient1.Connect;
St:=TMemoryStream.Create;
BMP := TBitmap.Create;
Jpg:= TJPEGImage.Create;
c:=TCanvas.Create;
try
BMP.Width := Screen.Width;
BMP.Height := Screen.Height;
c.Handle:=GetDC(GetDesktopWindow);
BMP.Canvas.CopyRect(Rect(0,0,BMP.Width,BMP.Height) ,c,Rect(0,0,Screen.Width,Screen.Height));
form1.image1.Picture.Bitmap.Assign(bmp);
bmp.SaveToStream(st);
St.Position:=0;
IdTCPClient1.IOHandler.Write(st) ;
finally
st.free;
BMP.Free;
Jpg.Free;
c.Free;
IdTCPClient1.Disconnect;
end;
end;

gbg
دوشنبه 26 دی 1390, 22:29 عصر
سلام
اینجوری بنویس :
سرور :

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
Jpg:TJPEGImage;
strSize:int64;
memrecieveStreamPic:TMemoryStream;
begin
Jpg:=TJPEGImage.Create;
memrecieveStreamPic:=TMemoryStream.Create;
try
strSize := AContext.Connection.IOHandler.RecvBufferSize; // ReadInt64();
AContext.Connection.IOHandler.ReadStream(memreciev eStreamPic,strSize,false);

memrecieveStreamPic.Position:=0;
Jpg.LoadFromStream(memrecieveStreamPic);
Image1.Picture.Bitmap.Assign(jpg);

finally
memrecieveStreamPic.Free;
end;
end;

کلاینت :
همونی که هست خوبه :بامزه:

البته کدی که برای من فرستادی با کدی که اینجاست فرق می کنه من اون کد رو تغییر دادم.

gharibeh2000
دوشنبه 25 اردیبهشت 1391, 12:47 عصر
سلام
میشه کد کامل این برنامه رو بزارین ؟
ممنون .

Mask
یک شنبه 28 خرداد 1391, 18:29 عصر
کد کامل همونه تو 2 تا پست گزاشته شده.