Delphi可視化Ping命令,用來檢測網絡連接狀態,信息窗口類似Windows運行cmd窗口的效果一樣,顯示bytes、time、TTL等返回信息。這個Ping例子相對實現很簡單,原理是利用Indy的TIdIcmpClIEnt組件即可輕松完成此功能。最終的運行界面效果圖:
完整代碼及注釋如下:
001
unit
Unit1;
002
interface
003
uses
004
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
005
Dialogs, IDBaseComponent, IdComponent, IdRawBase, IdRawClIEnt,
006
IdIcmpClIEnt, ExtCtrls, ComCtrls, StdCtrls;
007
type
008
TForm1 =
class
(TForm)
009
Label2: TLabel;
010
Label3: TLabel;
011
Label4: TLabel;
012
Label5: TLabel;
013
Label1: TLabel;
014
Edit1: TEdit;
015
Button1: TButton;
016
Edit2: TEdit;
017
Memo1: TMemo;
018
Button2: TButton;
019
Memo2: TMemo;
020
Edit3: TEdit;
021
UpDown1: TUpDown;
022
Button3: TButton;
023
Timer1: TTimer;
024
IdIcmpClient1: TIdIcmpClIEnt;
025
procedure
Button1Click(Sender: TObject);
026
FormCreate(Sender: TObject);
027
Button2Click(Sender: TObject);
028
Button3Click(Sender: TObject);
029
Timer1Timer(Sender: TObject);
030
IdIcmpClIEnt1Reply(ASender: TComponent;
031
const
AReplyStatus: TReplyStatus);
032
private
033
{ Private declarations }
034
public
035
{ Public declarations }
036
end
;
037
var
038
Form1: TForm1;
039
implementation
040
{$R *.dfm}
041
TForm1
.
042
begin
043
Button1
Enabled :=
False
044
Timer1
Interval := UpDown1
Position *
1000
//設置循環時間
045
True
//開始循環
046
047
048
049
//通常在窗體建立的時候我們可以設置一些組件的屬性。
050
Memo1
ScrollBars := ssVertical;
//顯示垂直滾動條
051
Color := clBlack;
052
Font
Color := clWhite;
053
Memo2
Color := clRed;
054
055
056
UpDown1
Associate := Edit2;
//關聯到Edit2
057
Min :=
1
//從1秒開始
058
Position :=
5
//默認5秒
059
060
061
062
063
064
065
066
067
Close;
068
069
070
071
try
072
IdIcmpClIEnt1
Host := Edit1
Text;
073
Ping;
//開始Ping操作
074
except
075
//非法錯誤停止循環
076
077
078
079
080
081
082
sTime:
string
083
AMemo: TMemo;
//當前添加內容的Memo組件
084
085
if
(AReplyStatus
MsRoundTripTime =
0
)
then
086
sTime :=
'<1'
087
else
088
'='
089
//超時Memo2顯示,正常狀態Memo1顯示
090
MsRoundTripTime > StrToIntDef(Edit3
Text,
))
091
AMemo := Memo2
092
AMemo := Memo1;
093
AMemo
Lines
Add(Format(
'%s Reply from %s: bytes=%d time%s%dms TTL=%d'
, [
094
DatetimeToStr(now),
095
AReplyStatus
FromIpAddress,
096
BytesReceived,
097
sTime,
098
MsRoundTripTime,
099
TimeToLive
100
]));
101
102
本例將把一張 bmp 圖片, 以資源文件的方式嵌入 dl
繪圖需要有紙、畫筆、畫刷; Delphi 有
Delphi數組例子,Delphi使用回溯法找出n個自然數
本來這個例子是要獲取區域的詳細信息的, 但非常遺憾, 這個
1、准備GPS(Global Position
本例效果圖:代碼文件:unit Unit1;i