InftForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit InftForm;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   StdCtrls;
  6. type
  7.   TForm1 = class(TForm)
  8.     ListBox1: TListBox;
  9.     btnRunner: TButton;
  10.     btnAthlete: TButton;
  11.     btnClear: TButton;
  12.     btnMyJumper: TButton;
  13.     procedure btnRunnerClick(Sender: TObject);
  14.     procedure btnAthleteClick(Sender: TObject);
  15.     procedure btnClearClick(Sender: TObject);
  16.     procedure btnMyJumperClick(Sender: TObject);
  17.   public
  18.     procedure Log (str: string);
  19.   end;
  20. var
  21.   Form1: TForm1;
  22. implementation
  23. {$R *.DFM}
  24. uses
  25.   WalkIntf;
  26. procedure TForm1.btnRunnerClick(Sender: TObject);
  27. var
  28.   W1: IWalker;
  29. begin
  30.   W1 := TRunner.Create;
  31.   Log ('TRunner.Create');
  32.   Log (W1.Run);
  33.   Log (W1.Walk);
  34.   Log (W1.Run);
  35.   Log ('');
  36. end;
  37. procedure TForm1.Log(str: string);
  38. begin
  39.   ListBox1.Items.Add (str);
  40. end;
  41. procedure TForm1.btnAthleteClick(Sender: TObject);
  42. var
  43.   W1: IWalker;
  44.   J1: IJumper;
  45. begin
  46.   W1 := TAthlete.Create;
  47.   Log ('TAthlete.Create');
  48.   Log (W1.Run);
  49.   Log (W1.Walk);
  50.   Log (W1.Run);
  51.   Log ((W1 as IJumper).Jump);
  52.   // see Chapter 4 (System unit) for a description
  53.   // of the Supports RTL function
  54.   if Supports (w1, IJumper) then
  55.   begin
  56.     J1 := W1 as IJumper;
  57.     Log (J1.Walk);
  58.   end;
  59.   Log ('');
  60. end;
  61. procedure TForm1.btnClearClick(Sender: TObject);
  62. begin
  63.   ListBox1.Clear;
  64. end;
  65. procedure TForm1.btnMyJumperClick(Sender: TObject);
  66. var
  67.   J1: IJumper;
  68. begin
  69.   J1 := TMyJumper.Create as IJumper;
  70.   Log ('TMyJumper.Create');
  71.   Log (J1.Walk);
  72.   Log (J1.Jump);
  73.   Log (J1.Walk);
  74.   Log ('');
  75. end;
  76. end.