Browse Source

fix choose color event

johann 5 năm trước cách đây
mục cha
commit
081cc86c31

+ 1 - 1
lazpaint/lazpaintmainform.pas

@@ -774,7 +774,7 @@ type
     procedure ToggleImageListVisible;
     procedure ToggleColorsVisible;
     procedure ToggleLayersVisible;
-    procedure ShowColorDialogFor(ATarget: TColorTarget);
+    function ShowColorDialogFor(ATarget: TColorTarget): boolean;
     procedure ShowPenPreview(ShouldRepaint: boolean= False);
     procedure HidePenPreview(TimeMs: Integer = 300);
     procedure OnPaintHandler;

+ 13 - 3
lazpaint/maintoolbar.inc

@@ -810,7 +810,10 @@ begin
   if LazPaintInstance.ChooseColorVisible and (AButton = mbLeft) then
     LazPaintInstance.ChooseColorTarget := target
   else
-    ShowColorDialogFor(target);
+  begin
+    if ShowColorDialogFor(target) then
+      AColorValue := LazPaintInstance.GetColor(target);
+  end;
 end;
 
 procedure TFMain.VectorialFill_BackChooseColor(ASender: TObject; AButton: TMouseButton;
@@ -828,16 +831,23 @@ begin
   if LazPaintInstance.ChooseColorVisible and (AButton = mbLeft) then
     LazPaintInstance.ChooseColorTarget := target
   else
-    ShowColorDialogFor(target);
+  begin
+    if ShowColorDialogFor(target) then
+      AColorValue := LazPaintInstance.GetColor(target);
+  end;
 end;
 
-procedure TFMain.ShowColorDialogFor(ATarget: TColorTarget);
+function TFMain.ShowColorDialogFor(ATarget: TColorTarget): boolean;
 var sourceColor: TBGRAPixel;
 begin
   sourceColor := LazPaintInstance.GetColor(ATarget);
   ColorDialog1.Color := sourceColor.ToColor;
   if ColorDialog1.Execute then
+  begin
     LazPaintInstance.SetColor(ATarget, ColorToBGRA(ColorDialog1.Color,sourceColor.alpha));
+    result := true;
+  end else
+    result := false;
 end;
 
 procedure TFMain.Image_SwapColorsMouseDown(Sender: TObject; Button: TMouseButton;

+ 1 - 1
lazpaintcontrols/lcvectorialfillcontrol.pas

@@ -120,7 +120,7 @@ procedure TLCVectorialFillControl.DoOnChooseColor(ASender: TObject; AButton: TMo
   AColorIndex: integer; var AColorValue: TBGRAPixel; out AHandled: boolean);
 begin
   If Assigned(FOnChooseColor) then
-    FOnChooseColor(self, AButton, AColorValue, AColorValue, AHandled)
+    FOnChooseColor(self, AButton, AColorIndex, AColorValue, AHandled)
   else
     AHandled := false;
 end;