一个位图显示的问题(50分)

  • 主题发起人 主题发起人 plzh
  • 开始时间 开始时间
P

plzh

Unregistered / Unconfirmed
GUEST, unregistred user!
请大家帮我诊断一段程序:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
mscreen:Tbitmap;
mscreenCanvas:TCanvas;
w,h:integer;
dc:HDC;
str:Tmemorystream;
begin
mscreen := TBitmap.Create;
mscreen.Width := screen.width;
mscreen.Height := screen.Height;
DC := GetDC (0);
mscreenCanvas := TCanvas.Create;
mscreenCanvas.Handle := DC;
w:=screen.width div 2;
h:=screen.height div 2;
mscreen.Canvas.CopyRect (Rect (0, 0,w,h ), mscreenCanvas,
Rect (0, 0, Screen.Width, Screen.Height));
mscreenCanvas.Free;
ReleaseDC (0, DC);
//*******************************
str:=Tmemorystream.Create;
mscreen.SaveToStream(str);//?我故意将其读入流中然后再读出
image1.Picture.Bitmap.LoadFromStream(str);//?
str.free;
mscreen.free;
end;

mscreen.SaveToStream(str);
image1.Picture.Bitmap.LoadFromStream(str);
这两句有错误吗?不知道为什么image1 中不能显示图象?请指正。
 
应为:
mscreen.SaveToStream(str);
str.position:=0;//*****
image1.Picture.Bitmap.LoadFromStream(str);
that is ok
 
Image1.update;
 
如果我要通过网络发送一副位图, 用TNMUDP.sendstream实现,要是这副位图很大
我应该怎样做发送到另一台机子? 端口缓冲区有多大?
 
hubdog的答案是对的:-)
我以前总出这样的错误:-(
udp在作大量数据传输是不好的, 因为没有纠错, 结果数据会不对的, 建议改用tcp.
 
多人接受答案了。
 

Similar threads

后退
顶部