Forum Replies Created
-
AuthorPosts
-
UniSoftParticipant
procedure 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;
UniSoftParticipantBUG! 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;
UniSoftParticipantahh 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;
UniSoftParticipantOne 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.UniSoftParticipantsome 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;
UniSoftParticipantThere 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.UniSoftParticipantRun ASkinDemo.exe select skin “Fluent Night”…
Dialogs -> OpenDialog/SaveDialog
Also try click About.
There is one more BUG, if click Scaling “Custom PPI”, and in drop down window click on thumb (but do not drag it!), then after drop down will be closed the frame of the window will be in inactive state (i.e. disabled)March 30, 2021 at 12:13 am in reply to: TsOpenDialog, TsSaveDialog… why not skinning some controls? #69956UniSoftParticipantSome menus are made and drawn by the Windows directly and can’t be changed at the moment, unfortunately.
You can hook function user32.TrackPopupMenuEx, from where you can get menu handle
March 17, 2021 at 3:01 pm in reply to: TsOpenDialog, TsSaveDialog… why not skinning some controls? #69930UniSoftParticipantAlso very miss,
that standard context menus of most of components (TsMemo, TsEdit, TsComboBox, etc) are not skinned 🙁September 22, 2020 at 10:54 pm in reply to: AC 15.15: EAccessViolation when gets CM_WININICHANGE #69622UniSoftParticipantI just notice that AMegaDemo.exe compiled with AC 15.16 (which is not available yet),
and it doesn’t have this exception.September 22, 2020 at 10:48 pm in reply to: AC 15.15: EAccessViolation when gets CM_WININICHANGE #69621UniSoftParticipantjust now tried with ASkinDemo.exe, run, minimize, send WM_WININICHANGE
get exceptionSeptember 22, 2020 at 10:41 pm in reply to: AC 15.15: EAccessViolation when gets CM_WININICHANGE #69619UniSoftParticipantNeed to send WM_WININICHANGE message…
And application must be minimized.
You can try the attached sample, to send broadcast WM_WININICHANGEAttachments:
You must be logged in to view attached files.UniSoftParticipantUniSoftParticipantYes, replied here. But forum deletes post.
Probably because of I posted the links to mega.nz with project included compiled exe.
—
using 15.05.
Just tried create new project (attached), get error on closeThere is also some bug with resize of TsEdit (design time only)
when it placed on top of TsGroupBox and have anchors akLeft, akRight, and VerticalAlignment = taVerticalCenter (or taAlignBottom).There is one more crash:
run askindemo.exe, click TsBitBtn “Change scaling”, select “Custom PixelsPerInch”,
get error in loop.
Error rises inside sThirdParty.pas in proc GetCommonData inside DrawBtnGlyph;if (DrawData.CurrentState = 0) and (SkinData.FOwnerControl.Parent <> nil) and (SkinData.SkinManager <> nil) and SkinData.SkinManager.IsValidSkinIndex(SkinData.SkinIndex) and <strong>(SkinData.CommonSkinData.gd <> nil) and // <<< I add this line to not crash</strong> (SkinData.CommonSkinData.gd[SkinData.SkinIndex].Props[0].Transparency = 100) then...
Found one more bug…
Popup window not closing.
run askindemo.exe, click Change scaling, it shows popup window, now you can click tabs but popup window not hides.- This reply was modified 4 years, 6 months ago by UniSoft.
Attachments:
You must be logged in to view attached files.UniSoftParticipantThere is one more issue…
Access to sSkinManager1.Palette in sSkinManager1Deactivate() will crash application on close.procedure TMainForm.sSkinManager1Deactivate(Sender: TObject); begin sColorSelect10.ColorValue := sSkinManager1.Palette[pcMainColor]; // here will crash on app close end;
UniSoftParticipant'Shertenok' wrote:А как мне быть мне дельфи вообще не куда не упёрся меня интересует конкретно С++… В вашем ответе судя по всему инструкция к дельфи
И что, и у меня C++, но компоненты (впрочем, как и все ядро этого “псевдо” C++) на Delphi написаны.
UniSoftParticipantВаша проблема в неправильной установке AlphaControls.
Если ставите из исходников, то:
(вырезка из инструкции Install.txt)
Quote:Install of 32bit packages for Delphi:1. Start by unpacking the acnt*.zip files into a folder of your own choice.
2. Add, (if need) AlphaControls directory in Delphi (Tools->Environment Options->Library->Library Path).
3. Use “FileOpen…” menu item of Delphi IDE to open the AlphaControls
run-time package acntX_r.dpk (x – version of Delphi). In the “Package…”
window click “Compile” button to compile run-time library.
4. Use “FileOpen…” menu item of Delphi IDE to open the AlphaControls
design-time package acntX.dpk. In the “Package…” window click “Install”
button (“Install menu item for latest versions of IDE”) to install the library.
5. DB-aware components users can install AlphaDB pack by copying AlphaDB files
to AlphaControls directory and AlphaDB.dpk file installing.
Так вот на шаге 3, прежде чем давить на “Compile”,
после открытия acntX_r.dpk (x – version of Delphi),
нужно в Project -> Options…
Delphi Compiler -> Output – C/C++ -> C/C++ Output file generation := Generate all C++Builder files (including package libs)
И далее все по инструкции.
PS. К авторам, об этом не плохо было бы упомянуть в Install.txt, либо выставить это свойство по-умолчанию.
UniSoftParticipantv9.11 – баг устранен
UniSoftParticipantА еще, если отключить скины, то при наведении курсора на кнопку меню (та, что в левом верхнем углу),
то вываливается исключение, Access violation at address 713D5A60 in module 'uxtheme.dll'. Read of address 00002000.
(Windows 7 Ultimate x64 SP1)
UniSoftParticipantWindows 7 Ultimate x64
проблема не проявляется…
-
AuthorPosts