游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2231|回复: 1

?DELPHI????????

[复制链接]

152

主题

155

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2005-1-12 10:15:00 | 显示全部楼层 |阅读模式
?DELPHI????????

??? ??? ??  
2002-8-5 14:32:48

--------------------------------------------------------------------------------


?????????????????????????????????????????????????????????????DELPHI???????????????????????????????????????????????????WEB???INTERNET???TCP???UDP??????????????????????????????DELPHI???TNMUDP???????UDP???????????????
1.?????????????
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????1-1???



?1-1????????

???????????????????????????????????????????????????????????????????????????????????(HUB)???(???)?????????????????1-2???


?1-2?????????

2.????????
2.1??TNMUDP??
??????????????????DELPHI???TNMUDP???TNMUDP?????????????????????Internet?Intranet???????????????????????1-3???
??
??
??

LocalPort
??
?????????????????????????????????????

RemoteHost
??
??????????????????????????IP??????

RemotePort
??
???????????????????????????????

ReportLevel
??
?????OnStatus ????????????????

ReadBuffer
??
????UDP????????

ReadStream
??
????UDP??????

SendBuffer
??
?????????????????????????

SendStream
??
???????????

OnDataReceived
??
??????????????

OnDataSend
??
?????SendStream ?? SendBuffer?????????????????


?1-3 TNMUDP????????

2.2???????????
??????????TNMUDP???SendStream??????????????????????????????????????????????????OnDataReceived ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????1-4?????????????


?1-4??????

????????????????????????????????????????????????????????????????????
procedure TFormMain.BitBtnSentClick(Sender: TObject);
var
MyStream: TMemoryStream;
TmpStr: String;
i:Integer;
Begin
NMUDP1.ReportLevel := Status_Basic; //?????????
//??????????
case RadioGroupBm.ItemIndex of
0:
begin
NMUDP1.RemoteHost := trim(EditXx.Text); //??????
NMUDP1.RemotePort := StrToInt(trim(EditPt.Text)); //??????
TmpStr :=??; //??????
MyStream := TMemoryStream.Create;  
try
MyStream.Write(TmpStr[1], Length(EditSm.Text)); //?????????
NMUDP1.SendStream(MyStream); //?????????????
finally
MyStream.Free; //???
end;
end;
1: //????
begin
for i:=0 to ListBoxXx.Count-1
do
begin
NMUDP1.RemoteHost :=ListBoxXx.Items.Strings;
NMUDP1.RemotePort := StrToInt(trim(EditMpt.Text));
TmpStr := EditSm.Text;
MyStream := TMemoryStream.Create;
try
MyStream.Write(TmpStr[1], Length(EditSm.Text));
NMUDP1.SendStream(MyStream);
finally
MyStream.Free;
end;
end;
end;
end;  
end;


?1-5??????????????Timer?????Label???????MediaPlayer????Timer???OnTimer??????????


?1-5??????

OnTimer????????????
procedure TFormStart.TimerOverTimer(Sender: TObject);
begin
if strToint(FormStart.LabelOver.Caption)>0 then
begin
if FormMain.Memo1.Lines.Strings[1]<>'' then //??????????
begin
FormStart.TimerOver.Enabled:=False; MediaPlayerOver.FileName:=(ExtractFilePath(Application.ExeName)+'clock.wav');
MediaPlayerOver.Open;
MediaPlayerOver.Play;  
FormTip.Show;
end
else
begin FormStart.LabelOver.Caption:=intTostr(strToint(FormStart.LabelOver.Caption)-1);
if strToint(FormStart.LabelOver.Caption)<10 then
FormStart.LabelOver.Left:=280; //?????????????
end;
end
else
begin
FormStart.TimerOver.Enabled:=False;
//????????
MediaPlayerOver.FileName:=(ExtractFilePath(Application.ExeName)+'clock.wav');
MediaPlayerOver.Open;
MediaPlayerOver.Play;
FormTip.Show;
end;
end;
?1-6 ???????????????Memo???????UDP????????????????????????MediaPlayer????????????


?1-6 ????

?????????????
procedure TFormTip.FormShow(Sender: TObject);
var msgFrom:string;
teamStr:string;
posFlag:integer;
teamNum:integer;
begin
PanelTip.Visible:=True;
PanelPro.Visible:=False;
msgFrom:=trim(FormMain.Memo1.Lines.Strings[1]);
posFlag:=Pos('*', msgFrom);  
teamStr:=copy(msgFrom,posFlag-1,1);
if teamStr<>''then
begin  
teamNum:=strToint(teamStr);  
showmessage(teamStr+'????????') ;//??????????? MediaPlayerOk.FileName:=(ExtractFilePath(Application.ExeName)+'t0'+teamStr+'.avi');  
//???????????????
MediaPlayerOk.Display:=PanelTip;
MediaPlayerOk.AutoRewind:=True;
end;
else  
begin  
//???????????
MediaPlayerOk.FileName:=(ExtractFilePath(Application.ExeName)+'heihei.avi');
MediaPlayerOk.Display:=PanelTip;
MediaPlayerOk.AutoRewind:=True;  
end;  
FormStart.Close;
FormStart.LabelOver.Caption:='60';
MediaPlayerOk.Close; //??????
MediaPlayerOk.Open;
MediaPlayerOk.Play;
TimerTip.Enabled:=True;  
end;
?1-7????????????????????????????????


?1-7 ???

????????????TNMUDP??????????????????????????????????
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
MyStream: TMemoryStream;
TmpStr,Rmsg,teamName: String;
posStart,posEnd,scoreLast,teamNum:integer;
begin
MyStream := TMemoryStream.Create;
Try //?????????
NMUDP1.ReadStream(MyStream);
SetLength(TmpStr,NumberBytes);
MyStream.Read(TmpStr[1],NumberBytes);
Memo1.Clear;
Memo1.Lines.Add(FromIP+'*'+TmpStr);
finally
MyStream.Free;
end;  
posStart:=Pos('*', TmpStr);  
Rmsg:=copy(TmpStr,posStart+1,5);  
if Rmsg='??' then //????????????
begin
Form1.NMUDP1.RemoteHost:=FromIP;
Form1.ButtonSent.Enabled:=True;
Form1.StatusBar1.SimpleText:='??????!';
end ;
if Rmsg='score' then //???????????
begin
posStart:=Pos('#', TmpStr);
posEnd:=Pos('@', TmpStr);
scoreLast:=strToint(copy(TmpStr,posStart+1,posEnd-posStart-1));
TeamName:= copy(TmpStr,posEnd+1,20);
teamNum:=strToint(copy(TmpStr,posEnd+1,1));  
Form1.LabelScore.Caption:=intTOstr(scoreLast);  
Form1.LabelScore.Visible:=True;
end;  
end;
????????????????????????????????????????????????????????????Windows2000/98+Delphi 6.0??????

sf_2005112101539.gif

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-6-30 09:58:00 | 显示全部楼层

Re:?DELPHI????????

?????????????????????????????
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-10-13 11:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表