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

Delphi控件源码

开发平台:

Delphi

  1. unit ListObj;
  2. interface
  3. uses
  4.   ComObj, ActiveX, StdVCL, Classes, Graphics, ListServ_TLB;
  5. type
  6.   TListServer = class(TAutoObject, IListServer)
  7.   private
  8.     fItems: TStrings;
  9.     fFont: TFont;
  10.   protected
  11.     function Get_Font: IFontDisp; safecall;
  12.     function Get_Items: IStrings; safecall;
  13.     procedure Set_Font(const Value: IFontDisp); safecall;
  14.     procedure Set_Items(const Value: IStrings); safecall;
  15.   public
  16.     destructor Destroy; override;
  17.     procedure Initialize; override;
  18.   end;
  19. implementation
  20. uses
  21.   ComServ, ListForm, AxCtrls;
  22. procedure TListServer.Initialize;
  23. begin
  24.   inherited Initialize;
  25.   fItems := TStringList.Create;
  26.   fFont := TFont.Create;
  27. end;
  28. destructor TListServer.Destroy;
  29. begin
  30.   fItems.Free;
  31.   fFont.Free;
  32.   inherited Destroy;
  33. end;
  34. function TListServer.Get_Font: IFontDisp;
  35. begin
  36.   // get the form of the form
  37.   fFont.Assign (ListServForm.Font);
  38.   // convert it
  39.   GetOleFont (fFont, Result);
  40. end;
  41. procedure TListServer.Set_Font(const Value: IFontDisp);
  42. begin
  43.   // convert the font passed as parameter
  44.   SetOleFont (fFont, Value);
  45.   // apply it to the form
  46.   ListServForm.Font.Assign (fFont);
  47.   // force a refresh of the list box
  48.   ListServForm.Listbox1.Invalidate;
  49. end;
  50. function TListServer.Get_Items: IStrings;
  51. begin
  52.   // get the listbox items, converting them
  53.   GetOleStrings (ListServForm.Listbox1.Items, Result);
  54. end;
  55. procedure TListServer.Set_Items(const Value: IStrings);
  56. begin
  57.   // convert the strings received as parameter
  58.   SetOleStrings (ListServForm.Listbox1.Items, Value);
  59. end;
  60. initialization
  61.   TAutoObjectFactory.Create(ComServer, TListServer,
  62.     CLASS_CoListServ, ciMultiInstance, tmSingle);
  63. end.