- This topic has 9 replies, 2 voices, and was last updated 3 years, 5 months ago by Support.
-
AuthorPosts
-
June 5, 2021 at 4:11 am #70052UniSoftParticipant
1. bug in TsStatusBar…
— sSkinManager1.Active := False;
— sStatusBar1.SizeGrip := True;
Result already can see in IDE, full StatusBar acts as a SizeGrip
(WMHitTest always returns HTBOTTOMRIGHT)
To fix it I changed function in sStatusBar.pas tofunction TsStatusBar.GripPos: TPoint; begin if FCommonData.SkinManager <> nil then with FCommonData.SkinManager, SkinData.CommonSkinData do if IsValidImgIndex(GripRightBottom) then begin Result := Point(Width - ma[GripRightBottom].Width - BorderWidth, Height - ma[GripRightBottom].Height - BorderWidth); Exit; end; Result := Point(Width - GetSystemMetrics(SM_CXSIZEFRAME), Height - GetSystemMetrics(SM_CYSIZEFRAME)); end;
2. Incorrectly painted titlebar of Docked form inside sPanel (DockSite:=True)
inside unit Vcl.DockTabSet; there is next code:initialization { The TDockTabSet needs a special dock tree to interact with it } DefaultDockTreeClass := TCaptionedTabDockTree;
so to fix this bug need in file sPanel.pas in procedure TsCustomPanel.PaintDragPanel(DC: hdc);
change condition to:
Captioned := (DefaultDockTreeClass.ClassName = 'TCaptionedTabDockTree') or (DefaultDockTreeClass.ClassName = 'TCaptionedDockTree');
June 5, 2021 at 2:38 pm #70053UniSoftParticipantThere is a BUG with resize? still didn’t found how to fix 🙁
Here is demo project (compiled exe already have fixed bugs from first post).alternative link to download example
_https_://mega.nz/file/sCQxmYQB#FPhNycGCdWy_HEKMnwjNNk32nnSDcxcvDET7oPNqF6AAttachments:
You must be logged in to view attached files.June 5, 2021 at 4:39 pm #70057UniSoftParticipantsome updates…
this resize shaking happens insideprocedure TsSkinProvider.AC_WMWindowPosChanging(var Message: TWMWindowPosChanging); begin ... with WindowPos^ do begin if FScreenSnap and Form.Showing then CheckNewPosition(X, Y); // <<<<<<< Here
This helps to fix (dont’t know if it is correct)
procedure TsSkinProvider.CheckNewPosition(var X: integer; var Y: integer); begin ... // Check for glued forms for i := 0 to Length(HookedComponents) - 1 do if (HookedComponents is TForm) and (HookedComponents <> Form) and TForm(HookedComponents).Visible and not Linked(TForm(HookedComponents)) and ((TForm(HookedComponents).HostDockSite = nil) or TForm(HookedComponents).Floating) then if CheckWithForm(TForm(HookedComponents)) then Break;
June 6, 2021 at 7:50 pm #70063SupportKeymasterHello!
Thank you for the demo and code, I will research and fix it soon.June 8, 2021 at 1:58 am #70064UniSoftParticipantOne more BUG with TsButton
I need a button with drop down list,
so I put TsButton on the form and set property sButton1.Style:= bsSplitButton;
everything OK, until I disabled skinning sSkinManager1.Active:=False;
now button painted as a simple push button (sButton1.Style:= bsPushButton) without arrow.
Now I put TButton, and I get opposite effect, ie. if skinning enabled I get bsPushButton,
if skinning disabled I get bsSplitButton.June 8, 2021 at 2:19 am #70065UniSoftParticipantahh found…
You override property Style, and not change the TButton.Style
fixprocedure TsButton.SetStyle(const Value: TButtonStyle); begin if FStyle <> Value then begin FStyle := Value; TButton(Self).Style := TCustomButton.TButtonStyle(Value); //// <<< I add this FCommonData.Invalidate; end; end;
June 11, 2021 at 6:59 am #70078SupportKeymasterThank you. Your code was added in the v16.11
June 14, 2021 at 12:19 pm #70101UniSoftParticipantBUG! This is long time bug…
Try this, and the window’s title became inactive… can’t close, move, etc…procedure TMainForm.sButton1Click(Sender: TObject); begin SetPPIAnimated(96); SetPPIAnimated(96); end;
Fix:
If the NewPPI value is not changed then the flag [msAnimScaling] will not be removedprocedure SetPPIAnimated(NewPPI: integer); begin //DefaultManager.ManagerState := DefaultManager.ManagerState + [msAnimScaling]; // <<< This line moved down if DefaultManager.Options.PixelsPerInch <> NewPPI then begin DefaultManager.ManagerState := DefaultManager.ManagerState + [msAnimScaling]; IterateForms(DefaultManager, AnimaScaleForm, MakeLParam(integer(DefaultManager.Options.ScaleMode = smVCL), NewPPI)); // Start anim threads DefaultManager.Options.PixelsPerInch := NewPPI; end; DefaultManager.Options.ScaleMode := smCustomPPI; // DefaultManager.ManagerState := DefaultManager.ManagerState - [msAnimScaling]; end;
June 14, 2021 at 12:28 pm #70102UniSoftParticipantprocedure SetPPIAnimated(NewPPI: integer); begin if DefaultManager.Options.PixelsPerInch <> NewPPI then begin DefaultManager.ManagerState := DefaultManager.ManagerState + [msAnimScaling]; IterateForms(DefaultManager, AnimaScaleForm, MakeLParam(integer(DefaultManager.Options.ScaleMode = smVCL), NewPPI)); // Start anim threads DefaultManager.Options.PixelsPerInch := NewPPI; DefaultManager.Options.ScaleMode := smCustomPPI; end; end;
June 16, 2021 at 8:22 am #70111SupportKeymasterThank you, I will change it soon.
Please, start new topics for further new issues. -
AuthorPosts
- You must be logged in to reply to this topic.