来源:www.cncfan.com | 2006-1-20 | (有9184人读过)
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, NMUDP, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, IdAntiFreezeBase, IdAntiFreeze, IDSOCKETHANDLE, Grids, Menus,shellapi; const MY_MESSAGE = WM_USER + 100;
type TForm1 = class(TForm) Sendword: TEdit; sendbt: TButton; NMUDP1: TNMUDP; Label1: TLabel; name: TEdit; Label2: TLabel; remotehost: TEdit; speaklist: TStringGrid; sendto: TEdit; MainMenu1: TMainMenu; F1: TMenuItem; Save1: TMenuItem; Exit1: TMenuItem; Help1: TMenuItem; About1: TMenuItem; receiveword: TLabel; PopupMenu1: TPopupMenu; Saveasfile1: TMenuItem; Sendtothem1: TMenuItem; EXIT2: TMenuItem; procedure sendbtClick(Sender: TObject); procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer); procedure FormCreate(Sender: TObject); procedure speaklistDblClick(Sender: TObject); procedure speaklistRowMoved(Sender: TObject; FromIndex, ToIndex: Integer); procedure Saveasfile1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure About1Click(Sender: TObject); private procedure OnIconNotify(var Message: TMessage); message MY_MESSAGE;
{ Private declarations } public { Public declarations } end;
var Form1: TForm1; Busy: Boolean; implementation
{$R *.dfm} procedure TForm1.OnIconNotify(var Message: TMessage);
begin if not Busy then begin Busy :=true; if Message.LParam=WM_LBUTTONDOWN then begin form1.Show; if Application.MessageBox('Are you sure close?','Exit',MB_YESNO)=IDYES then Close; popupmenu1.Popup(10,10); end; Busy := false;
end;
end;
procedure TForm1.sendbtClick(Sender: TObject); var MyStream: TMemoryStream; TmpStr: String; Begin NMUDP1.ReportLevel := Status_Basic; NMUDP1.RemoteHost := remotehost.Text; //Α#n+祇癳+#t+ヘ夹+#s+笆迭弧+#w+弧杠 TmpStr :='#n'+name.Text+'#t'+sendto.Text+'#s 弧#w'+ sendword.Text; MyStream := TMemoryStream.Create; try MyStream.Write(TmpStr[1], Length(tmpstr)); NMUDP1.SendStream(MyStream); finally MyStream.Free; end; sendword.SetFocus; end;
procedure TForm1.NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer); var MyStream: TMemoryStream; TmpStr: String; name:string; BeSend:string; postword:string; s:integer; t:integer; w:integer; begin MyStream := TMemoryStream.Create; try NMUDP1.ReadStream(MyStream); SetLength(TmpStr,NumberBytes); MyStream.Read(TmpStr[1],NumberBytes); //- Α秆絏:#n+祇癳+#t+ヘ夹+#s+笆迭弧+#w+弧杠 s:=pos('#s',tmpstr); t:=pos('#t',tmpstr); w:=pos('#w',tmpstr); name:=copy(tmpstr,3,t-3); besend:=copy(tmpstr,t+2,s-t-2); postword:=copy(tmpstr,w+2,length(tmpstr)-w+1); //----------- speaklist.RowCount:=speaklist.RowCount+1; speaklist.Cells[0,speaklist.rowcount-2]:=fromip; speaklist.Cells[1,speaklist.RowCount-2]:=name; //speaklist.Cells[2,speaklist.RowCount-2]:=besend; speaklist.cells[2,speaklist.RowCount-2]:='癸-'+besend+'-弧:'+postword; receiveword.Caption:=name+'癸 -'+besend+'- 弧 :'+postword; beep(); //sendmessage(speaklist.Handle,WM_VSCROLL,SB_BOTTOM,0);
finally MyStream.Free;
end;
end;
procedure TForm1.FormCreate(Sender: TObject); var nid: TNotifyIconData;
begin //hide taskbar 夹肈 //SetWindowLong(application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW); busy:=false; nid.cbSize := sizeof(nid); // nid?????? nid.Wnd := Handle; // ????? nid.uID:=4567; nid.hIcon := Application.Icon.Handle; // ????????,????? nid.szTip := 'LANICQ--- Design by 璖狥キ;MiTAC LTD. JUN.2002'; // ????? nid.uCallbackMessage := MY_MESSAGE; // ?????? nid.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE; // ????????
if not Shell_NotifyIcon(NIM_ADD,@nid) then begin ShowMessage('Failed!'); Application.Terminate; end; {??????????TOOL??,??????????} SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
procedure TForm1.speaklistDblClick(Sender: TObject); var i:integer; //t:string; begin i:=speaklist.Selection.Top; remotehost.Text:=speaklist.Cells[0,i]; sendto.Text:=speaklist.Cells[1,i];
end;
procedure TForm1.speaklistRowMoved(Sender: TObject; FromIndex, ToIndex: Integer); begin speaklist.Canvas.Brush.Color:=234567; end;
procedure TForm1.Saveasfile1Click(Sender: TObject); var t:string; i:integer;
begin
for i:=0 to speaklist.RowCount-1 do begin
//t:=t+speaklist.Cols[i].Text;
end; end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); var nid: TNotifyIconData; begin nid.cbSize := sizeof(nid); // nid?????? nid.cbSize := sizeof(nid); // nid?????? nid.uID :=4567; //????,??????????? nid.Wnd := Handle; //????? Shell_NotifyIcon(NIM_DELETE,@nid); //????? Shell_NotifyIcon(NIM_DELETE,@nid); //????? enD;
procedure TForm1.About1Click(Sender: TObject); begin SHOWMESSAGE('LANICQ--- Design by 璖狥キ;MiTAC LTD. JUN.2002'); end;
end.
|