?? unit17.~pas
字號:
unit Unit17;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, NMUDP, StdCtrls, Buttons, ExtCtrls;
type
TForm17 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
Panel2: TPanel;
Memo1: TMemo;
Panel3: TPanel;
ListBox1: TListBox;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
NMUDP1: TNMUDP;
SpeedButton1: TSpeedButton;
procedure Formshow(Sender: TObject);
//var Buff: array of Char; var length: Integer);
procedure SpeedButton1Click(Sender: TObject);
procedure edit1keypress(Sender: TObject; var Key: Char);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure nmudp1datareceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String; Port: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form17: TForm17;
computername:array[0..127]of char;
implementation
{$R *.dfm}
procedure TForm17.Formshow(Sender: TObject);
var
sz:dword;
begin
sz:=Sizeof(ComputerName);
getcomputername(ComputerName,sz);
listbox1.Items.Clear;
listbox1.Items.Add('dajia');
listbox1.Items.Add(ComputerName);
listbox1.ItemIndex:=0;
end;
procedure TForm17.SpeedButton1Click(Sender: TObject);
var
mystream:tmemorystream;
tmpstr:string;
i:integer;
begin
if edit1.Text <>''then
begin
nmudp1.ReportLevel:=status_basic;
nmudp1.RemotePort:=8888;
if listbox1.Items[listbox1.ItemIndex]:=computername then
edit1.Text:=computername+'自言自語'+edit1.Text
else
edit1.text:=computername+'對'+listbox1.Items[listbox1.itemindex]+'說'+edit1.Text;
tmpstr:=edit1.Text;
mystream:=tmemorystream.Create;
try
mystream.Write(tmpstr[1],length(edit1.text));
if listbox1.ItemIndex=0 then
begin
for i:=1 to listbox1.Items.Count-1 do
begin
nmudp1.RemoteHost:=listbox1.Items[i];
nmudp1.SendStream(mystream);
end;
end
else
begin
nmudp1.RemoteHost:=listbox1.Items[listbox1.itemindex];
nmudp1.SendStream(mystream);
end;
finally
mystream.Free;
end;
edit1.text:='';
edit1.setfocus;
end
else
edit1.setfocus;
end;
procedure TForm17.edit1keypress(Sender: TObject; var Key: Char);
var
mystream:tmemorystream;
tmpstr:string;
i:integer;
begin
if(key=#13)and(edit1.text<>'')then
begin
nmudp1.ReportLevel:=status_basic;
nmudp1.RemotePort:=8888;
if listbox1.Items[listbox1.ItemIndex]:=computername then
edit1.Text:=computername+'自言自語'+edit1.Text
else
edit1.text:=computername+'對'+listbox1.Items[listbox1.itemindex]+'說'+edit1.Text;
tmpstr:=edit1.Text;
mystream:=tmemorystream.Create;
try
mystream.Write(tmpstr[1],length(edit1.text));
if listbox1.ItemIndex=0 then
begin
for i:=1 to listbox1.Items.Count-1 do
begin
nmudp1.RemoteHost:=listbox1.Items[i];
nmudp1.SendStream(mystream);
end;
end
else
begin
nmudp1.RemoteHost:=listbox1.Items[listbox1.itemindex];
nmudp1.SendStream(mystream);
end;
finally
mystream.Free;
end;
edit1.text:='';
edit1.setfocus;
end
else
edit1.setfocus;
end;
procedure TForm17.BitBtn2Click(Sender: TObject);
var
inputstring:string;
begin
inputstring:=inputbox('增加聊天對象','ip地址或計算機名:','');
if inputstring<>''then listbox1.Items.Add(inputstring);
listbox1.ItemIndex:=0;
end;
procedure TForm17.BitBtn3Click(Sender: TObject);
begin
if listbox1.ItemIndex<>0 then
listbox1.Items.Delete(listbox1.ItemIndex);
end;
procedure TForm17.BitBtn4Click(Sender: TObject);
begin
close;
end;
procedure TForm17.nmudp1datareceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
mystream:tmemorystream;
tmpstr:string;
begin
mystream:=tmemorystream.create;
try
nmudp1.ReadStream(mystream);
setlength(tmpstr,numberbytes);
mystream.Read(tmpstr[1],numberbytes);
memo1.Lines.Add(tmpstr);
finally
mystream.Free;
end;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -