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

Delphi控件源码

开发平台:

Delphi

  1. unit LCliForm;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls,
  5.   Forms, Dialogs, StdCtrls, ListServ_TLB;
  6. type
  7.   TListCliForm = class(TForm)
  8.     btnFont: TButton;
  9.     FontDialog1: TFontDialog;
  10.     btnMemList: TButton;
  11.     EditItem: TEdit;
  12.     btnMemoTo: TButton;
  13.     Memo1: TMemo;
  14.     btnAdd: TButton;
  15.     btnServer: TButton;
  16.     procedure btnFontClick(Sender: TObject);
  17.     procedure btnMemListClick(Sender: TObject);
  18.     procedure btnMemoToClick(Sender: TObject);
  19.     procedure btnAddClick(Sender: TObject);
  20.     procedure btnServerClick(Sender: TObject);
  21.   private
  22.     fInternalListServ: IListServer;
  23.     function GetListSrv: IListServer;
  24.   public
  25.     property ListSrv: IListServer
  26.       read GetListSrv;
  27.   end;
  28. var
  29.   ListCliForm: TListCliForm;
  30. implementation
  31. {$R *.DFM}
  32. uses
  33.   ActiveX, AxCtrls, StdVCL;
  34. procedure TListCliForm.btnFontClick(Sender: TObject);
  35. var
  36.   NewFont: IFontDisp;
  37. begin
  38.   // select a font and apply it
  39.   if FontDialog1.Execute then
  40.   begin
  41.     GetOleFont (FontDialog1.Font, NewFont);
  42.     ListSrv.Font := NewFont;
  43.   end;
  44. end;
  45. procedure TListCliForm.btnMemListClick(Sender: TObject);
  46. var
  47.   TempIStrs: IStrings;
  48.   List: TStrings;
  49.   I: Integer;
  50. begin
  51.   // set a list of strings...
  52.   List := TStringList.Create;
  53.   try
  54.     for I := 1 to 10 do
  55.       List.Add ('Item ' + IntToStr (I));
  56.     GetOleStrings (List, TempIStrs);
  57.     ListSrv.Items := TempIStrs;
  58.   finally
  59.     List.Free;
  60.   end;
  61. end;
  62. procedure TListCliForm.btnMemoToClick(Sender: TObject);
  63. var
  64.   TempIStrs: IStrings;
  65. begin
  66.   GetOleStrings (Memo1.Lines, TempIStrs);
  67.   ListSrv.Items := TempIStrs;
  68. end;
  69. procedure TListCliForm.btnAddClick(Sender: TObject);
  70. var
  71.   TempIStrs: IStrings;
  72.   List: TStrings;
  73. begin
  74.   // create a temporary list of strings
  75.   List := TStringList.Create;
  76.   try
  77.     // get items from server
  78.     TempIStrs := ListSrv.Items;
  79.     // add new item
  80.     TempIStrs.Add (EditItem.Text);
  81.     // make local copy
  82.     SetOleStrings (List, TempIStrs);
  83.     // copy back to interface
  84.     GetOleStrings (List, TempIStrs);
  85.     // send to server
  86.     ListSrv.Items := TempIStrs;
  87.   finally
  88.     List.Free;
  89.   end;
  90. end;
  91. procedure TListCliForm.btnServerClick(Sender: TObject);
  92. var
  93.   TempIStrs: IStrings;
  94. begin
  95.   // get the interface and move strings to memo
  96.   TempIStrs := ListSrv.Items;
  97.   SetOleStrings (Memo1.Lines, TempIStrs);
  98. end;
  99. function TListCliForm.GetListSrv: IListServer;
  100. begin
  101.   // eventually create the server
  102.   if not Assigned (fInternalListServ) then
  103.     fInternalListServ := CoCoListServ.Create;
  104.   Result := fInternalListServ;
  105. end;
  106. end.