Witam
Na podstawie ksiazki "Programowanie w Delphi 5.0" napisalem program do pingowania. (Zwykle pingowanie, bez zadnych bajerow). No i mam problem... moj wspanialy program nie dziala. Nie mam pojecia czemu. Zrobilem wszystko tak jak w ksiazce bylo napisane. Napisalem nawet go 2 razy i nawet przeinstalowalem delphi (myslalem ze moze cos u mnie bylo skopane).
Jezeli ktos moglby zerknac to bede bardzo wdzieczny.
Kod zrodlowy wraz z exe mozna sciagnac z: http://smart.toya.net.pl/~olaf/ping.zip
A tak to wyglada:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, Psock, NMEcho, StdCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Memo1: TMemo;
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
NMEcho1: TNMEcho;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure NMEcho1Connect(Sender: TObject);
procedure NMEcho1Disconnect(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
If Button1.Caption = 'Ping' then
begin
Memo1.Lines.Clear;
NMEcho1.Host := Edit1.Text;
Button1.Enabled := False;
try
NMEcho1.Connect;
except
Memo1.Lines.Add('Nie moge polaczyc');
end;
Button1.Enabled := True;
end else
NMEcho1.Disconnect;
end;
procedure TForm1.NMEcho1Connect(Sender: TObject);
begin
Memo1.Lines.Add('Connected');
Button1.Caption := 'Stop';
NMEcho1.TimeOut := 700;
Timer1.Enabled := True;
end;
procedure TForm1.NMEcho1Disconnect(Sender: TObject);
begin
Memo1.Lines.Add('Disconnected');
Button1.Caption := 'Ping';
Timer1.Enabled := False;
NMEcho1.TimeOut := 10000
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
try
NMEcho1.Echo('12345678901234567890123456789012');
except
Memo1.Lines.Add('[' + NMEcho1.RemoteIP + '] transmit failed');
exit;
end;
Memo1.Lines.Add('Replay from ' + ' [' + NMEcho1.RemoteIP + '] Elapsed time: '
- FloatToStr(NMEcho1.ElapsedTime) + ' ms');
end;
end.