Johann ELSASS пре 5 година
родитељ
комит
5b41090cc0
1 измењених фајлова са 18 додато и 53 уклоњено
  1. 18 53
      bgrathemebutton.pas

+ 18 - 53
bgrathemebutton.pas

@@ -17,6 +17,7 @@ type
   private
     FModalResult: TModalResult;
     FState: TBGRAThemeButtonState;
+    procedure SetState(AValue: TBGRAThemeButtonState);
   protected
     class function GetControlClassDefaultSize: TSize; override;
     procedure MouseEnter; override;
@@ -30,6 +31,7 @@ type
     procedure TextChanged; override;
     procedure Paint; override;
     procedure Resize; override;
+    property State: TBGRAThemeButtonState read FState write SetState;
   public
     constructor Create(AOwner: TComponent); override;
   published
@@ -57,6 +59,13 @@ end;
 
 { TBGRAThemeButton }
 
+procedure TBGRAThemeButton.SetState(AValue: TBGRAThemeButtonState);
+begin
+  if FState=AValue then Exit;
+  FState:=AValue;
+  Invalidate;
+end;
+
 class function TBGRAThemeButton.GetControlClassDefaultSize: TSize;
 begin
   Result.CX := 125;
@@ -64,81 +73,39 @@ begin
 end;
 
 procedure TBGRAThemeButton.MouseEnter;
-var
-  NewState: TBGRAThemeButtonState;
 begin
   inherited MouseEnter;
   if Enabled then
-    NewState := btbsHover
-  else
-  begin
-    FState := btbsNormal;
-    NewState := FState;
-  end;
-
-  if NewState <> FState then
-  begin
-    FState := NewState;
-    Invalidate;
-  end;
+    State := btbsHover
+    else State := btbsDisabled;
 end;
 
 procedure TBGRAThemeButton.MouseLeave;
-var
-  NewState: TBGRAThemeButtonState;
 begin
   inherited MouseLeave;
   if Enabled then
-    NewState := btbsNormal
-  else
-  begin
-    FState := btbsNormal;
-    NewState := FState;
-  end;
-
-  if NewState <> FState then
-  begin
-    FState := NewState;
-    Invalidate;
-  end;
+    State := btbsNormal
+    else State := btbsDisabled;
 end;
 
 procedure TBGRAThemeButton.MouseDown(Button: TMouseButton; Shift: TShiftState;
   X, Y: integer);
-var
-  NewState: TBGRAThemeButtonState;
 begin
   inherited MouseDown(Button, Shift, X, Y);
-  NewState := btbsActive;
-
-  if NewState <> FState then
-  begin
-    FState := NewState;
-    Invalidate;
-  end;
-  Invalidate;
+  State := btbsActive;
 end;
 
 procedure TBGRAThemeButton.MouseUp(Button: TMouseButton; Shift: TShiftState;
   X, Y: integer);
 var
-  NewState: TBGRAThemeButtonState;
   p: TPoint;
 begin
   inherited MouseUp(Button, Shift, X, Y);
   p := ScreenToClient(Mouse.CursorPos);
 
   if (p.x >= 0) and (p.x <= Width) and (p.y >= 0) and (p.y <= Height) then
-    NewState := btbsHover
-  else
-    NewState := btbsNormal;
-
-  if NewState <> FState then
-  begin
-    FState := NewState;
-    Invalidate;
-  end;
-  Invalidate;
+   State := btbsHover
+   else State := btbsNormal;
 end;
 
 procedure TBGRAThemeButton.DoMouseMove(x, y: integer);
@@ -163,10 +130,8 @@ procedure TBGRAThemeButton.SetEnabled(Value: boolean);
 begin
   inherited SetEnabled(Value);
   if Value then
-    FState := btbsNormal
-  else
-    FState := btbsDisabled;
-  Invalidate;
+    State := btbsNormal
+    else State := btbsDisabled;
 end;
 
 procedure TBGRAThemeButton.TextChanged;