首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi7和Delphi2006中的IdUDPServer1UDPRead不一样了,该怎么处理

2012-03-07 
Delphi7和Delphi2006中的IdUDPServer1UDPRead不一样了,该怎么办?在Delphi7版本中IdUDPServer的UDPServerUD

Delphi7和Delphi2006中的IdUDPServer1UDPRead不一样了,该怎么办?
在Delphi7版本中IdUDPServer的UDPServerUDPRead过程是这样的:
procedure   TFrm_UDPServer.UDPServerUDPRead(Sender:   TObject;   AData:   TStream;
    ABinding:   TIdSocketHandle);
var
    DataStringStream:   TStringStream;
    s:   String;
begin
    DataStringStream   :=   TStringStream.Create( ' ');
    try
        DataStringStream.CopyFrom(AData,   AData.Size);
        s   :=   DataStringStream.DataString;
end;


而在Delphi2006版中却成了这样:
procedure   TForm1.IdUDPServer1UDPRead(Sender:   TObject;   AData:   TBytes;
    ABinding:   TIdSocketHandle);


两处中AData的定义类型不一样了,D7是TStream,在D2006却成了TBytes类型,那样DataStringStream.CopyFrom(AData,   AData.Size);的使用就有问题了,想问一下要实现同样的D7种的接受数据,在D2006中该怎么实现阿?

[解决办法]
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
ABinding: TIdSocketHandle);
var
s: String;
begin
s:=PChar(@AData);
[解决办法]
这样
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes;
ABinding: TIdSocketHandle);
var
s: String;
begin
s:=PChar(@AData[0]);

热点排行