home *** CD-ROM | disk | FTP | other *** search
/ PC Expert 29 / Pce29cd.iso / RUNIMAGE / DELPHI40 / DEMOS / ACTIVEX / DELCTRLS / spinbuttonimpl1.pas < prev    next >
Pascal/Delphi Source File  |  1998-06-16  |  7KB  |  268 lines

  1. unit SpinButtonImpl1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, ActiveX, Classes, Controls, Graphics, Menus, Forms, StdCtrls,
  7.   ComServ, StdVCL, AXCtrls, DelCtrls_TLB, Spin;
  8.  
  9. type
  10.   TSpinButtonX = class(TActiveXControl, ISpinButtonX)
  11.   private
  12.     { Private declarations }
  13.     FDelphiControl: TSpinButton;
  14.     FEvents: ISpinButtonXEvents;
  15.     procedure DownClickEvent(Sender: TObject);
  16.     procedure UpClickEvent(Sender: TObject);
  17.   protected
  18.     { Protected declarations }
  19.     procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override;
  20.     procedure EventSinkChanged(const EventSink: IUnknown); override;
  21.     procedure InitializeControl; override;
  22.     function ClassNameIs(const Name: WideString): WordBool; safecall;
  23.     function DrawTextBiDiModeFlags(Flags: Integer): Integer; safecall;
  24.     function DrawTextBiDiModeFlagsReadingOnly: Integer; safecall;
  25.     function Get_BiDiMode: TxBiDiMode; safecall;
  26.     function Get_Ctl3D: WordBool; safecall;
  27.     function Get_Cursor: Smallint; safecall;
  28.     function Get_DoubleBuffered: WordBool; safecall;
  29.     function Get_DownNumGlyphs: Smallint; safecall;
  30.     function Get_DragCursor: Smallint; safecall;
  31.     function Get_DragMode: TxDragMode; safecall;
  32.     function Get_Enabled: WordBool; safecall;
  33.     function Get_ParentCtl3D: WordBool; safecall;
  34.     function Get_UpNumGlyphs: Smallint; safecall;
  35.     function Get_Visible: WordBool; safecall;
  36.     function GetControlsAlignment: TxAlignment; safecall;
  37.     function IsRightToLeft: WordBool; safecall;
  38.     function UseRightToLeftAlignment: WordBool; safecall;
  39.     function UseRightToLeftReading: WordBool; safecall;
  40.     function UseRightToLeftScrollBar: WordBool; safecall;
  41.     procedure AboutBox; safecall;
  42.     procedure FlipChildren(AllLevels: WordBool); safecall;
  43.     procedure InitiateAction; safecall;
  44.     procedure Set_BiDiMode(Value: TxBiDiMode); safecall;
  45.     procedure Set_Ctl3D(Value: WordBool); safecall;
  46.     procedure Set_Cursor(Value: Smallint); safecall;
  47.     procedure Set_DoubleBuffered(Value: WordBool); safecall;
  48.     procedure Set_DownNumGlyphs(Value: Smallint); safecall;
  49.     procedure Set_DragCursor(Value: Smallint); safecall;
  50.     procedure Set_DragMode(Value: TxDragMode); safecall;
  51.     procedure Set_Enabled(Value: WordBool); safecall;
  52.     procedure Set_ParentCtl3D(Value: WordBool); safecall;
  53.     procedure Set_UpNumGlyphs(Value: Smallint); safecall;
  54.     procedure Set_Visible(Value: WordBool); safecall;
  55.   end;
  56.  
  57. implementation
  58.  
  59. uses ComObj, About29;
  60.  
  61. { TSpinButtonX }
  62.  
  63. procedure TSpinButtonX.DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage);
  64. begin
  65.   { Define property pages here.  Property pages are defined by calling
  66.     DefinePropertyPage with the class id of the page.  For example,
  67.       DefinePropertyPage(Class_SpinButtonXPage); }
  68. end;
  69.  
  70. procedure TSpinButtonX.EventSinkChanged(const EventSink: IUnknown);
  71. begin
  72.   FEvents := EventSink as ISpinButtonXEvents;
  73. end;
  74.  
  75. procedure TSpinButtonX.InitializeControl;
  76. begin
  77.   FDelphiControl := Control as TSpinButton;
  78.   FDelphiControl.OnDownClick := DownClickEvent;
  79.   FDelphiControl.OnUpClick := UpClickEvent;
  80. end;
  81.  
  82. function TSpinButtonX.ClassNameIs(const Name: WideString): WordBool;
  83. begin
  84.   Result := FDelphiControl.ClassNameIs(Name);
  85. end;
  86.  
  87. function TSpinButtonX.DrawTextBiDiModeFlags(Flags: Integer): Integer;
  88. begin
  89.   Result := FDelphiControl.DrawTextBiDiModeFlags(Flags);
  90. end;
  91.  
  92. function TSpinButtonX.DrawTextBiDiModeFlagsReadingOnly: Integer;
  93. begin
  94.   Result := FDelphiControl.DrawTextBiDiModeFlagsReadingOnly;
  95. end;
  96.  
  97. function TSpinButtonX.Get_BiDiMode: TxBiDiMode;
  98. begin
  99.   Result := Ord(FDelphiControl.BiDiMode);
  100. end;
  101.  
  102. function TSpinButtonX.Get_Ctl3D: WordBool;
  103. begin
  104.   Result := FDelphiControl.Ctl3D;
  105. end;
  106.  
  107. function TSpinButtonX.Get_Cursor: Smallint;
  108. begin
  109.   Result := Smallint(FDelphiControl.Cursor);
  110. end;
  111.  
  112. function TSpinButtonX.Get_DoubleBuffered: WordBool;
  113. begin
  114.   Result := FDelphiControl.DoubleBuffered;
  115. end;
  116.  
  117. function TSpinButtonX.Get_DownNumGlyphs: Smallint;
  118. begin
  119.   Result := Smallint(FDelphiControl.DownNumGlyphs);
  120. end;
  121.  
  122. function TSpinButtonX.Get_DragCursor: Smallint;
  123. begin
  124.   Result := Smallint(FDelphiControl.DragCursor);
  125. end;
  126.  
  127. function TSpinButtonX.Get_DragMode: TxDragMode;
  128. begin
  129.   Result := Ord(FDelphiControl.DragMode);
  130. end;
  131.  
  132. function TSpinButtonX.Get_Enabled: WordBool;
  133. begin
  134.   Result := FDelphiControl.Enabled;
  135. end;
  136.  
  137. function TSpinButtonX.Get_ParentCtl3D: WordBool;
  138. begin
  139.   Result := FDelphiControl.ParentCtl3D;
  140. end;
  141.  
  142. function TSpinButtonX.Get_UpNumGlyphs: Smallint;
  143. begin
  144.   Result := Smallint(FDelphiControl.UpNumGlyphs);
  145. end;
  146.  
  147. function TSpinButtonX.Get_Visible: WordBool;
  148. begin
  149.   Result := FDelphiControl.Visible;
  150. end;
  151.  
  152. function TSpinButtonX.GetControlsAlignment: TxAlignment;
  153. begin
  154.  Result := TxAlignment(FDelphiControl.GetControlsAlignment);
  155. end;
  156.  
  157. function TSpinButtonX.IsRightToLeft: WordBool;
  158. begin
  159.   Result := FDelphiControl.IsRightToLeft;
  160. end;
  161.  
  162. function TSpinButtonX.UseRightToLeftAlignment: WordBool;
  163. begin
  164.   Result := FDelphiControl.UseRightToLeftAlignment;
  165. end;
  166.  
  167. function TSpinButtonX.UseRightToLeftReading: WordBool;
  168. begin
  169.   Result := FDelphiControl.UseRightToLeftReading;
  170. end;
  171.  
  172. function TSpinButtonX.UseRightToLeftScrollBar: WordBool;
  173. begin
  174.   Result := FDelphiControl.UseRightToLeftScrollBar;
  175. end;
  176.  
  177. procedure TSpinButtonX.AboutBox;
  178. begin
  179.   ShowSpinButtonXAbout;
  180. end;
  181.  
  182. procedure TSpinButtonX.FlipChildren(AllLevels: WordBool);
  183. begin
  184.   FDelphiControl.FlipChildren(AllLevels);
  185. end;
  186.  
  187. procedure TSpinButtonX.InitiateAction;
  188. begin
  189.   FDelphiControl.InitiateAction;
  190. end;
  191.  
  192. procedure TSpinButtonX.Set_BiDiMode(Value: TxBiDiMode);
  193. begin
  194.   FDelphiControl.BiDiMode := TBiDiMode(Value);
  195. end;
  196.  
  197. procedure TSpinButtonX.Set_Ctl3D(Value: WordBool);
  198. begin
  199.   FDelphiControl.Ctl3D := Value;
  200. end;
  201.  
  202. procedure TSpinButtonX.Set_Cursor(Value: Smallint);
  203. begin
  204.   FDelphiControl.Cursor := TCursor(Value);
  205. end;
  206.  
  207. procedure TSpinButtonX.Set_DoubleBuffered(Value: WordBool);
  208. begin
  209.   FDelphiControl.DoubleBuffered := Value;
  210. end;
  211.  
  212. procedure TSpinButtonX.Set_DownNumGlyphs(Value: Smallint);
  213. begin
  214.   FDelphiControl.DownNumGlyphs := TNumGlyphs(Value);
  215. end;
  216.  
  217. procedure TSpinButtonX.Set_DragCursor(Value: Smallint);
  218. begin
  219.   FDelphiControl.DragCursor := TCursor(Value);
  220. end;
  221.  
  222. procedure TSpinButtonX.Set_DragMode(Value: TxDragMode);
  223. begin
  224.   FDelphiControl.DragMode := TDragMode(Value);
  225. end;
  226.  
  227. procedure TSpinButtonX.Set_Enabled(Value: WordBool);
  228. begin
  229.   FDelphiControl.Enabled := Value;
  230. end;
  231.  
  232. procedure TSpinButtonX.Set_ParentCtl3D(Value: WordBool);
  233. begin
  234.   FDelphiControl.ParentCtl3D := Value;
  235. end;
  236.  
  237. procedure TSpinButtonX.Set_UpNumGlyphs(Value: Smallint);
  238. begin
  239.   FDelphiControl.UpNumGlyphs := TNumGlyphs(Value);
  240. end;
  241.  
  242. procedure TSpinButtonX.Set_Visible(Value: WordBool);
  243. begin
  244.   FDelphiControl.Visible := Value;
  245. end;
  246.  
  247. procedure TSpinButtonX.DownClickEvent(Sender: TObject);
  248. begin
  249.   if FEvents <> nil then FEvents.OnDownClick;
  250. end;
  251.  
  252. procedure TSpinButtonX.UpClickEvent(Sender: TObject);
  253. begin
  254.   if FEvents <> nil then FEvents.OnUpClick;
  255. end;
  256.  
  257. initialization
  258.   TActiveXControlFactory.Create(
  259.     ComServer,
  260.     TSpinButtonX,
  261.     TSpinButton,
  262.     Class_SpinButtonX,
  263.     29,
  264.     '{695CDBB6-02E5-11D2-B20D-00C04FA368D4}',
  265.     0,
  266.     tmApartment);
  267. end.
  268.