home *** CD-ROM | disk | FTP | other *** search
/ Delphi Anthology / aDELPHI.iso / Runimage / Delphi50 / Demos / FastNet / Echo / echodem.pas < prev    next >
Pascal/Delphi Source File  |  1999-08-11  |  4KB  |  145 lines

  1. ///////////////////////////////////////////////////////////////////////////
  2. //                                                                       //
  3. // Copyright ⌐ 1997-1998, NetMasters, L.L.C                              //
  4. //  - All rights reserved worldwide. -                                   //
  5. //  Portions may be Copyright ⌐ Inprise.                                 //
  6. //                                                                       //
  7. // Echo Demo Unit 1:  (UNIT1.PAS)                                        //
  8. //                                                                       //
  9. // DESCRIPTION:                                                          //
  10. //                                                                       //
  11. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY //
  12. // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE   //
  13. // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR //
  14. // PURPOSE.                                                              //
  15. //                                                                       //
  16. ///////////////////////////////////////////////////////////////////////////
  17. //
  18. // Revision History
  19. //
  20. //                                                                       //
  21. ///////////////////////////////////////////////////////////////////////////
  22. unit EchoDem;
  23.  
  24. interface
  25.  
  26. uses
  27.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  28.   Psock, NMEcho, ExtCtrls, StdCtrls, ComCtrls;
  29.  
  30. type
  31.   TForm1 = class(TForm)
  32.     Edit1: TEdit;
  33.     Label1: TLabel;
  34.     Label2: TLabel;
  35.     Button1: TButton;
  36.     Panel1: TPanel;
  37.     NMEcho1: TNMEcho;
  38.     Edit2: TEdit;
  39.     Label3: TLabel;
  40.     Edit3: TEdit;
  41.     Label4: TLabel;
  42.     Button2: TButton;
  43.     Button3: TButton;
  44.     StatusBar1: TStatusBar;
  45.     Edit4: TEdit;
  46.     Label5: TLabel;
  47.     Button4: TButton;
  48.     procedure Button1Click(Sender: TObject);
  49.     procedure Button2Click(Sender: TObject);
  50.     procedure Button3Click(Sender: TObject);
  51.     procedure NMEcho1Connect(Sender: TObject);
  52.     procedure NMEcho1Disconnect(Sender: TObject);
  53.     procedure Button4Click(Sender: TObject);
  54.     procedure NMEcho1ConnectionFailed(Sender: TObject);
  55.     procedure NMEcho1HostResolved(Sender: TComponent);
  56.     procedure NMEcho1Status(Sender: TComponent; Status: String);
  57.     procedure NMEcho1ConnectionRequired(var handled: Boolean);
  58.     procedure NMEcho1InvalidHost(var handled: Boolean);
  59.   private
  60.     { Private declarations }
  61.   public
  62.     { Public declarations }
  63.   end;
  64.  
  65. var
  66.   Form1: TForm1;
  67.  
  68. implementation
  69.  
  70. {$R *.DFM}
  71.  
  72. procedure TForm1.Button1Click(Sender: TObject);
  73. begin
  74.   Edit4.Text := NMEcho1.Echo(Edit1.Text);
  75.   Label2.Caption := 'Elapsed Time: '+FloatToStr(NMEcho1.ElapsedTime);
  76. end;
  77.  
  78. procedure TForm1.Button2Click(Sender: TObject);
  79. begin
  80.   NMEcho1.ReportLevel := Status_Basic;
  81.   NMEcho1.TimeOut := 20000;
  82.   NMEcho1.Host := Edit2.Text;
  83.   NMEcho1.Port := StrToInt(Edit3.Text);
  84.   NMEcho1.Connect;
  85. end;
  86.  
  87. procedure TForm1.Button3Click(Sender: TObject);
  88. begin
  89.   NMEcho1.Disconnect;
  90. end;
  91.  
  92. procedure TForm1.NMEcho1Connect(Sender: TObject);
  93. begin
  94.   StatusBar1.SimpleText := 'Connected';
  95. end;
  96.  
  97. procedure TForm1.NMEcho1Disconnect(Sender: TObject);
  98. begin
  99.   If StatusBar1 <> nil then
  100.     StatusBar1.SimpleText := 'Disconnected';
  101. end;
  102.  
  103. procedure TForm1.Button4Click(Sender: TObject);
  104. begin
  105.   NMEcho1.Abort;
  106. end;
  107.  
  108. procedure TForm1.NMEcho1ConnectionFailed(Sender: TObject);
  109. begin
  110.   ShowMessage('Connection Failed');
  111. end;
  112.  
  113. procedure TForm1.NMEcho1HostResolved(Sender: TComponent);
  114. begin
  115.   StatusBar1.SimpleText := 'Host Resolved';
  116. end;
  117.  
  118. procedure TForm1.NMEcho1Status(Sender: TComponent; Status: String);
  119. begin
  120.   If StatusBar1 <> nil then
  121.     StatusBar1.SimpleText := status;
  122. end;
  123.  
  124. procedure TForm1.NMEcho1ConnectionRequired(var handled: Boolean);
  125. begin
  126.   If MessageDlg('Connection Required. Connect?', mtConfirmation, mbOkCancel, 0) = mrOk then
  127.   Begin
  128.     Handled := TRUE;
  129.     NMEcho1.Connect;
  130.   End;
  131. end;
  132.  
  133. procedure TForm1.NMEcho1InvalidHost(var handled: Boolean);
  134. var
  135.   TmpStr: String;
  136. begin
  137.   If InputQuery('Invalid Host!', 'Specify a new host:', TmpStr) then
  138.   Begin
  139.     NMEcho1.Host := TmpStr;
  140.     Handled := TRUE;
  141.   End;
  142. end;
  143.  
  144. end.
  145.