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

Delphi控件源码

开发平台:

Delphi

  1. unit TLibCliF;
  2. interface
  3. {$WARN SYMBOL_PLATFORM OFF} 
  4. uses
  5.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  6.   StdCtrls, ExtCtrls, TLibDemo_tlb, Variants;
  7. type
  8.   TClientForm = class(TForm)
  9.     BtnColor1: TButton;
  10.     BtnColor2: TButton;
  11.     BtnIntf: TButton;
  12.     BtnVariant: TButton;
  13.     BtnDispIntf: TButton;
  14.     Bevel1: TBevel;
  15.     ListResult: TListBox;
  16.     BtnColorBis: TButton;
  17.     procedure FormCreate(Sender: TObject);
  18.     procedure BtnColor1Click(Sender: TObject);
  19.     procedure BtnColor2Click(Sender: TObject);
  20.     procedure BtnIntfClick(Sender: TObject);
  21.     procedure BtnVariantClick(Sender: TObject);
  22.     procedure BtnDispIntfClick(Sender: TObject);
  23.     procedure BtnColorBisClick(Sender: TObject);
  24.   private
  25.     { Private declarations }
  26.   public
  27.     { Public declarations }
  28.     MyServer, MyServerBis: Variant;
  29.     IMyServer, IMyServerBis: IFirstServer;
  30.     DMyServer: IFirstServerDisp;
  31.   end;
  32. var
  33.   ClientForm: TClientForm;
  34. implementation
  35. {$R *.DFM}
  36. procedure TClientForm.FormCreate(Sender: TObject);
  37. begin
  38.   // creates server objects
  39.   IMyServer := CoFirstServer.Create;
  40.   DMyServer := CoFirstServer.Create as IFirstServerDisp;
  41.   MyServer := CoFirstServer.Create;
  42. end;
  43. procedure TClientForm.BtnColor1Click(Sender: TObject);
  44. begin
  45.   IMyServer.ChangeColor;
  46. end;
  47. procedure TClientForm.BtnColor2Click(Sender: TObject);
  48. begin
  49.   MyServer.ChangeColor;
  50. end;
  51. procedure TClientForm.BtnIntfClick(Sender: TObject);
  52. var
  53.   I, K: Integer;
  54.   Ticks: Cardinal;
  55. begin
  56.   Screen.Cursor := crHourglass;
  57.   try
  58.     Ticks := GetTickCount;
  59.     K := 0;
  60.     for I := 1 to 100 do
  61.       K := K + IMyServer.Value;
  62.     Ticks := GetTickCount - Ticks;
  63.     ListResult.items.Add (Format (
  64.       'Interface: %d - Seconds %.3f', [K, Ticks / 1000]));
  65.   finally
  66.     Screen.Cursor := crDefault;
  67.   end;
  68. end;
  69. procedure TClientForm.BtnVariantClick(Sender: TObject);
  70. var
  71.   I, K: Integer;
  72.   Ticks: Cardinal;
  73. begin
  74.   Screen.Cursor := crHourglass;
  75.   try
  76.     Ticks := GetTickCount;
  77.     K := 0;
  78.     for I := 1 to 100 do
  79.       K := K + MyServer.Value;
  80.     Ticks := GetTickCount - Ticks;
  81.     ListResult.items.Add (Format (
  82.       'Variant: %d - Seconds %.3f', [K, Ticks / 1000]));
  83.   finally
  84.     Screen.Cursor := crDefault;
  85.   end;
  86. end;
  87. procedure TClientForm.BtnDispIntfClick(Sender: TObject);
  88. var
  89.   I, K: Integer;
  90.   Ticks: Cardinal;
  91. begin
  92.   Screen.Cursor := crHourglass;
  93.   try
  94.     Ticks := GetTickCount;
  95.     K := 0;
  96.     for I := 1 to 100 do
  97.       K := K + DMyServer.Value;
  98.     Ticks := GetTickCount - Ticks;
  99.     ListResult.items.Add (Format (
  100.       'DispIntf %d - Seconds %.3f', [K, Ticks / 1000]));
  101.   finally
  102.     Screen.Cursor := crDefault;
  103.   end;
  104. end;
  105. procedure TClientForm.BtnColorBisClick(Sender: TObject);
  106. begin
  107.   if varType (MyServerBis) = varEmpty then
  108.     MyServerBis := CoFirstServer.Create;
  109.   MyServerBis.ChangeColor;
  110.   if not Assigned (IMyServerBis) then
  111.     IMyServerBis := CoFirstServer.Create;
  112.   IMyServerBis.ChangeColor;
  113. end;
  114. end.