Browse Source

Update bcmaterialfloatspinedit.pas

New TBCMaterialFloatSpinEdit class
Melchiorre Caruso 10 months ago
parent
commit
864b589616
1 changed files with 66 additions and 118 deletions
  1. 66 118
      bcmaterialfloatspinedit.pas

+ 66 - 118
bcmaterialfloatspinedit.pas

@@ -5,45 +5,81 @@ unit BCMaterialFloatSpinEdit;
 interface
 
 uses
-  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
-  StdCtrls, Spin;
+  BCMaterialEdit, Classes, Controls, Dialogs, ExtCtrls, Forms, Graphics,
+  {$IFDEF FPC} LCLType, LResources, {$ENDIF} Menus, Spin, StdCtrls, SysUtils;
 
 type
 
   { TBCMaterialFloatSpinEdit }
 
-  TBCMaterialFloatSpinEdit = class(TCustomPanel)
-  private
-    FAccentColor: TColor;
-    FDisabledColor: TColor;
-    Flbl: TLabel;
-    Fedt: TFloatSpinEdit;
-    Ffocused: boolean;
-    FOnChange: TNotifyEvent;
-    FTexto: string;
-    procedure ChangeEdit(Sender: TObject);
-    procedure EnterEdit(Sender: TObject);
-    procedure ExitEdit(Sender: TObject);
-    function GetTabStop: Boolean;
-    procedure SetTabStop(AValue: Boolean);
-    procedure SetTexto(AValue: string);
-  protected
-    procedure Paint; override;
+  TBCMaterialFloatSpinEdit = class(specialize TBCMaterialEditBase<TFloatSpinEdit>)
   public
-    constructor Create(AOwner: TComponent); override;
+    property AutoSelect;
   published
     property Align;
+    property Alignment;
+    property AccentColor;
     property Anchors;
+    property AutoSize;
+    property BiDiMode;
     property BorderSpacing;
+    property Caption;
+    property CharCase;
     property Color;
-    property Text: string read FTexto write SetTexto;
-    property Edit: TFloatSpinEdit read Fedt;
-    property Title: TLabel read Flbl;
-    property DisabledColor: TColor read FDisabledColor write FDisabledColor;
-    property AccentColor: TColor read FAccentColor write FAccentColor;
-    property OnChange: TNotifyEvent read FOnChange write FOnChange;
+    property Constraints;
+    property Cursor;
+    property DisabledColor;
+    property DoubleBuffered;
+    property DragCursor;
+    property DragMode;
+    property Font;
+    property EchoMode;
+    property Edit: TFloatSpinEdit read FEdit;
+    property EditLabel;
+    property Enabled;
+    property HideSelection;
+    property Hint;
+    property LabelSpacing;
+    property MaxLength;
+    property NumbersOnly;
+    property ParentBiDiMode;
+    property ParentColor;
+    property ParentFont;
+    property PasswordChar;
+    property PopupMenu;
+    property ReadOnly;
+    property ShowHint;
+    property Tag;
     property TabOrder;
-    property TabStop: boolean read GetTabStop write SetTabStop default True;
+    property TabStop;
+    property Text;
+    property TextHint;
+    property Visible;
+
+    property OnChange;
+    property OnChangeBounds;
+    property OnClick;
+    property OnContextPopup;
+    property OnDragDrop;
+    property OnDragOver;
+    property OnEditingDone;
+    property OnEndDrag;
+    property OnEnter;
+    property OnExit;
+    property OnKeyDown;
+    property OnKeyPress;
+    property OnKeyUp;
+    property OnMouseDown;
+    property OnMouseEnter;
+    property OnMouseLeave;
+    property OnMouseMove;
+    property OnMouseUp;
+    property OnMouseWheel;
+    property OnMouseWheelDown;
+    property OnMouseWheelUp;
+    property OnResize;
+    property OnStartDrag;
+    property OnUTF8KeyPress;
   end;
 
 procedure Register;
@@ -52,98 +88,10 @@ implementation
 
 procedure Register;
 begin
+  {$IFDEF FPC}
+    {$I icons\bcmaterialfloatspinedit_icon.lrs}
+  {$ENDIF}
   RegisterComponents('BGRA Controls', [TBCMaterialFloatSpinEdit]);
 end;
 
-{ TBCMaterialFloatSpinEdit }
-
-procedure TBCMaterialFloatSpinEdit.EnterEdit(Sender: TObject);
-begin
-  Ffocused := True;
-  Invalidate;
-  Flbl.Font.Color := AccentColor;
-end;
-
-procedure TBCMaterialFloatSpinEdit.ChangeEdit(Sender: TObject);
-begin
-  if Assigned(FOnChange) then
-    FOnChange(Self);
-end;
-
-procedure TBCMaterialFloatSpinEdit.ExitEdit(Sender: TObject);
-begin
-  Ffocused := False;
-  Invalidate;
-  Flbl.Font.Color := DisabledColor;
-end;
-
-function TBCMaterialFloatSpinEdit.GetTabStop: Boolean;
-begin
-  result := Fedt.TabStop;
-end;
-
-procedure TBCMaterialFloatSpinEdit.SetTabStop(AValue: Boolean);
-begin
-  if Fedt.TabStop = AValue then Exit;
-  Fedt.TabStop := AValue;
-end;
-
-procedure TBCMaterialFloatSpinEdit.SetTexto(AValue: string);
-begin
-  if FTexto = AValue then
-    Exit;
-  FTexto := AValue;
-  Flbl.Caption := FTexto;
-  //Fedt.TextHint := FTexto;
-end;
-
-procedure TBCMaterialFloatSpinEdit.Paint;
-begin
-  inherited Paint;
-  Canvas.Brush.Color := Color;
-  Canvas.Pen.Color := Color;
-  Canvas.Rectangle(0, 0, Width, Height);
-  if (fFocused) then
-  begin
-    Canvas.Pen.Color := AccentColor;
-    Canvas.Line(0, Height - 2, Width, Height - 2);
-    Canvas.Line(0, Height - 1, Width, Height - 1);
-  end
-  else
-  begin
-    Canvas.Pen.Color := DisabledColor;
-    Canvas.Line(0, Height - 1, Width, Height - 1);
-  end;
-end;
-
-constructor TBCMaterialFloatSpinEdit.Create(AOwner: TComponent);
-begin
-  inherited Create(AOwner);
-  Self.BevelOuter := bvNone;
-  Self.Color := clWhite;
-  AccentColor := clHighlight;
-  DisabledColor := $00B8AFA8;
-  Flbl := TLabel.Create(Self);
-  Flbl.Align := alTop;
-  Flbl.Caption := 'Buscar';
-  Flbl.BorderSpacing.Around := 4;
-  Flbl.Font.Style := [fsBold];
-  Flbl.Font.Color := $00B8AFA8;
-  Flbl.Parent := Self;
-  Fedt := TFloatSpinEdit.Create(Self);
-  Fedt.Color := Color;
-  Fedt.Font.Color := clBlack;
-  Fedt.OnEnter := @EnterEdit;
-  Fedt.OnExit := @ExitEdit;
-  Fedt.OnChange:=@ChangeEdit;
-  Fedt.Align := alClient;
-  Fedt.BorderStyle := bsNone;
-  //Fedt.TextHint := 'Buscar';
-  Fedt.BorderSpacing.Around := 4;
-  Fedt.Parent := Self;
-  Fedt.MinValue := 0;
-  Fedt.MaxValue := MaxInt;
-  Fedt.TabStop := True;
-end;
-
 end.