这个简单的聊天室程序,编译是出错~!!~?
源码如下:
=============================
unit talkudp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, IdUDPClient, IdBaseComponent,
IdComponent, IdUDPBase, IdUDPServer;
type
Tcommblock = record
sendername,msg:string[100];
end;
TForm1 = class(TForm)
Panel1: TPanel;
yuanchengip: TLabeledEdit;
yuanchengdk: TLabeledEdit;
nicheng: TLabeledEdit;
localport: TLabeledEdit;
bitset: TBitBtn;
Panel2: TPanel;
word: TEdit;
bitsend: TBitBtn;
duihua: TMemo;
IdUDPServer1: TIdUDPServer;
IdUDPClient1: TIdUDPClient;
procedure bitsetClick(Sender: TObject);
procedure bitsendClick(Sender: TObject);
procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
const RECIEVETIMEOUT = 5000;
implementation
{$R *.dfm}
procedure TForm1.bitsetClick(Sender: TObject);
begin
if (trim(yuanchengip.Text)='') then
messagebox(handle,'IP端口不能为空','警告',mb_ok+mb_iconwarning)
else
if localport.Text='' then
messagebox(handle,'本地端口不能为空','警告',mb_ok+mb_iconwarning)
else
begin
idudpclient1.Host:=trim(yuanchengip.Text);//设置远程ip
idudpclient1.Port :=strtoint(trim(yuanchengdk.Text));
idudpclient1.ReceiveTimeout:=RECIEVETIMEOUT;
idudpserver1.DefaultPort:=strtoint(localport.text);
idudpserver1.Active:=true;
bitsend.Enabled :=true;
end;
end;
procedure TForm1.bitsendClick(Sender: TObject);
var comm:Tcommblock;
begin
comm.sendername:=nicheng.Text;
comm.msg:=word.Text;
duihua.Lines.Add(comm.sendername+': '+comm.msg);
idudpclient1.SendBuffer(comm,sizeof(comm));
end;
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var comm:tcommblock;
begin
adata.ReadBuffer(comm,adata.Size);
duihua.Lines.Add(comm.sendername+': '+comm.msg);
end;
end.
========================================
出错信息:[Error] talkudp.pas(31): Undeclared identifier: 'TIdSocketHandle';
刚接触Delphi的网络应用,各位兄弟帮助以下~!~
问题点数:20、回复次数:1Top
1 楼liangqingzhi(老之)回复于 2006-03-10 18:02:56 得分 20
这是一个bug,放一个IdUDPServer时它没有自动添加IdSocketHandle单元。
加上一句uses IdSocketHandle;就好了Top




