bcmaterialspinedit.pas 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. unit BCMaterialSpinEdit;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. BCMaterialEdit, Classes, Controls, Dialogs, ExtCtrls, Forms, Graphics,
  6. {$IFDEF FPC} LCLType, LResources, {$ENDIF} Menus, Spin, StdCtrls, SysUtils;
  7. type
  8. { TBCMaterialSpinEdit }
  9. TBCMaterialSpinEdit = class(specialize TBCMaterialEditBase<TSpinEdit>)
  10. private
  11. function GetEditEditorEnabled: boolean;
  12. function GetEditIncrement: double;
  13. function GetEditMinValue: double;
  14. function GetEditMaxValue: double;
  15. function GetEditValue: double;
  16. procedure SetEditEditorEnabled(AValue: boolean);
  17. procedure SetEditIncrement(AValue: double);
  18. procedure SetEditMinValue(AValue: double);
  19. procedure SetEditMaxValue(AValue: double);
  20. procedure SetEditValue(AValue: double);
  21. function GetOnEditMouseWheelHorz: TMouseWheelEvent;
  22. function GetOnEditMouseWheelLeft: TMouseWheelUpDownEvent;
  23. function GetOnEditMouseWheelRight: TMouseWheelUpDownEvent;
  24. procedure SetOnEditMouseWheelHorz(AValue: TMouseWheelEvent);
  25. procedure SetOnEditMouseWheelLeft(AValue: TMouseWheelUpDownEvent);
  26. procedure SetOnEditMouseWheelRight(AValue: TMouseWheelUpDownEvent);
  27. published
  28. property Align;
  29. property Alignment;
  30. property Anchors;
  31. property AutoSelect;
  32. property AutoSize;
  33. //property BiDiMode;
  34. property BorderSpacing;
  35. property Caption;
  36. //property CharCase;
  37. property Color;
  38. property Constraints;
  39. property Cursor;
  40. property DisabledColor;
  41. //property DoubleBuffered;
  42. //property EchoMode;
  43. property Edit: TSpinEdit read FEdit;
  44. property EditorEnabled: boolean read GetEditEditorEnabled write SetEditEditorEnabled default True;
  45. property EditLabel;
  46. property Enabled;
  47. property Font;
  48. property Height;
  49. //property HideSelection;
  50. property Hint;
  51. property Increment: double read GetEditIncrement write SetEditIncrement;
  52. property Left;
  53. property MinValue: double read GetEditMinValue write SetEditMinValue;
  54. //property MaxLength;
  55. property MaxValue: double read GetEditMaxValue write SetEditMaxValue;
  56. property LabelSpacing;
  57. property Name;
  58. //property ParentBiDiMode;
  59. property ParentColor;
  60. property ParentFont;
  61. property PopupMenu;
  62. property ReadOnly;
  63. property ShowHint;
  64. property TabOrder;
  65. property TabStop;
  66. property Tag;
  67. //property Text;
  68. //property TextHint;
  69. property Top;
  70. property Value: double read GetEditValue write SetEditValue;
  71. property Visible;
  72. property Width;
  73. property OnChange;
  74. property OnChangeBounds;
  75. property OnClick;
  76. //property OnContextPopup;
  77. //property OnDragDrop;
  78. //property OnDragOver;
  79. property OnEditingDone;
  80. //property OnEndDrag;
  81. property OnEnter;
  82. property OnExit;
  83. property OnKeyDown;
  84. property OnKeyPress;
  85. property OnKeyUp;
  86. property OnMouseDown;
  87. property OnMouseEnter;
  88. property OnMouseLeave;
  89. property OnMouseMove;
  90. property OnMouseUp;
  91. property OnMouseWheel;
  92. property OnMouseWheelDown;
  93. property OnMouseWheelUp;
  94. property OnMouseWheelHorz: TMouseWheelEvent read GetOnEditMouseWheelHorz write SetOnEditMouseWheelHorz;
  95. property OnMouseWheelLeft: TMouseWheelUpDownEvent read GetOnEditMouseWheelLeft write SetOnEditMouseWheelLeft;
  96. property OnMouseWheelRight: TMouseWheelUpDownEvent read GetOnEditMouseWheelRight write SetOnEditMouseWheelRight;
  97. property OnResize;
  98. //property OnStartDrag;
  99. property OnUTF8KeyPress;
  100. end;
  101. procedure Register;
  102. implementation
  103. procedure Register;
  104. begin
  105. {$IFDEF FPC}
  106. {$I icons\bcmaterialspinedit_icon.lrs}
  107. {$ENDIF}
  108. RegisterComponents('BGRA Controls', [TBCMaterialSpinEdit]);
  109. end;
  110. function TBCMaterialSpinEdit.GetEditEditorEnabled: boolean;
  111. begin
  112. result := FEdit.EditorEnabled;
  113. end;
  114. function TBCMaterialSpinEdit.GetEditIncrement: double;
  115. begin
  116. result := FEdit.Increment;
  117. end;
  118. function TBCMaterialSpinEdit.GetEditMinValue: double;
  119. begin
  120. result := FEdit.MinValue;
  121. end;
  122. function TBCMaterialSpinEdit.GetEditMaxValue: double;
  123. begin
  124. result := FEdit.MaxValue;
  125. end;
  126. function TBCMaterialSpinEdit.GetEditValue: double;
  127. begin
  128. result := FEdit.Value;
  129. end;
  130. procedure TBCMaterialSpinEdit.SetEditEditorEnabled(AValue: boolean);
  131. begin
  132. FEdit.EditorEnabled := AValue;
  133. end;
  134. procedure TBCMaterialSpinEdit.SetEditIncrement(AValue: double);
  135. begin
  136. FEdit.Increment := AValue;
  137. end;
  138. procedure TBCMaterialSpinEdit.SetEditMinValue(AValue: double);
  139. begin
  140. FEdit.MinValue := AValue;
  141. end;
  142. procedure TBCMaterialSpinEdit.SetEditMaxValue(AValue: double);
  143. begin
  144. FEdit.MaxValue := AValue;
  145. end;
  146. procedure TBCMaterialSpinEdit.SetEditValue(AValue: double);
  147. begin
  148. FEdit.Value := AValue;
  149. end;
  150. function TBCMaterialSpinEdit.GetOnEditMouseWheelHorz: TMouseWheelEvent;
  151. begin
  152. result := FEdit.OnMouseWheelHorz;
  153. end;
  154. function TBCMaterialSpinEdit.GetOnEditMouseWheelLeft: TMouseWheelUpDownEvent;
  155. begin
  156. result := FEdit.OnMouseWheelLeft;
  157. end;
  158. function TBCMaterialSpinEdit.GetOnEditMouseWheelRight: TMouseWheelUpDownEvent;
  159. begin
  160. result := FEdit.OnMouseWheelRight;
  161. end;
  162. procedure TBCMaterialSpinEdit.SetOnEditMouseWheelHorz(AValue: TMouseWheelEvent);
  163. begin
  164. FEdit.OnMouseWheelHorz := AValue;
  165. end;
  166. procedure TBCMaterialSpinEdit. SetOnEditMouseWheelLeft(AValue: TMouseWheelUpDownEvent);
  167. begin
  168. FEdit.OnMouseWheelLeft := AValue;
  169. end;
  170. procedure TBCMaterialSpinEdit.SetOnEditMouseWheelRight(AValue: TMouseWheelUpDownEvent);
  171. begin
  172. FEdit.OnMouseWheelRight := AValue;
  173. end;
  174. end.