怎样做一个实时抓屏的软件啊 我做了一个,但是在CLIENT端显示出来图像总是闪烁,不是用一个时间控件在固定时间内读取端发过来的流吗?请大家赐教下,有没有代码例子,Thank You 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.delphiboy.com/cgi-bin/doc/datacontent.php?no=119我试过,应该没有问题.我用的是delphi 6.0procedure Tserver.SUDPDataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer);var ReqCode:array[0..29] of char; ReqCodeStr:string;begin ReqCodeStr:='show'+area; StrpCopy(ReqCode,ReqCodeStr); SUDP.ReadStream(TmpStream); RsltStream.CopyFrom(TmpStream,NumberBytes); if NumberBytes< BufSize then { 数据已读完 } begin RsltStream.Position:=0; Image1.Picture.Bitmap.LoadFromStream(RsltStream); TmpStream.Clear; RsltStream.Clear; SendAgain; //自己加的,读完以后,再发送,其他那上面一样 end else begin TmpStream.Clear; ReqCode:='show'; SUDP.RemoteHost:=ip; SUDP.SendBuffer(ReqCode,30); end;end;procedure Tserver.SendAgain;var ReqCode:array[0..29] of char; ReqCodeStr:string;begin //ip :='172.30.241.22'; //if inputquery('ip address','prompt',ip) = false then exit; area :='0:0:1024:768'; ReqCodeStr:='show'+Edit1.text StrpCopy(ReqCode,ReqCodeStr); TmpStream.Clear; RsltStream.Clear; SUDP.RemoteHost:=ip; SUDP.SendBuffer(ReqCode,30);end; 闪烁的话,用一下双缓冲self.doublebuffered := True; 我做的通过DCOM获得服务器端的图像并显示,刚开始也闪烁,后来发现每次获得图像后不要修改Image组件的width和height就可以了 (急用)tcpserver/tclient返回信息问题 如何根据控件名称定位该控件在TObjectList中的位置 数据采集源码(idhttp,WebBrowser技术),低价转让,代理采集数据!! 请教如何使用Tshockwaveflash控件 怎样在Delphi中使用Excel中的函数 在程序中怎么样将其它格式(如EXCEL)中的数据导入到paradox数据库中? 有关线程的终止 请问一个关于edit的问题! Delphi调用DLL的问题 编程实现在dbgrid中插入一行的问题。 怎样注册ACCESS的ODBC? 急救--在线等待
我试过,应该没有问题.我用的是delphi 6.0
procedure Tserver.SUDPDataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
ReqCode:array[0..29] of char;
ReqCodeStr:string;
begin
ReqCodeStr:='show'+area;
StrpCopy(ReqCode,ReqCodeStr);
SUDP.ReadStream(TmpStream);
RsltStream.CopyFrom(TmpStream,NumberBytes);
if NumberBytes< BufSize then { 数据已读完 }
begin
RsltStream.Position:=0;
Image1.Picture.Bitmap.LoadFromStream(RsltStream);
TmpStream.Clear;
RsltStream.Clear;
SendAgain; //自己加的,读完以后,再发送,其他那上面一样
end
else
begin
TmpStream.Clear;
ReqCode:='show';
SUDP.RemoteHost:=ip;
SUDP.SendBuffer(ReqCode,30);
end;
end;procedure Tserver.SendAgain;
var
ReqCode:array[0..29] of char;
ReqCodeStr:string;
begin
//ip :='172.30.241.22';
//if inputquery('ip address','prompt',ip) = false then exit;
area :='0:0:1024:768';
ReqCodeStr:='show'+Edit1.text
StrpCopy(ReqCode,ReqCodeStr);
TmpStream.Clear;
RsltStream.Clear;
SUDP.RemoteHost:=ip;
SUDP.SendBuffer(ReqCode,30);
end;
self.doublebuffered := True;
后来发现每次获得图像后不要修改Image组件的width和height就可以了