Forum Replies Created
-
AuthorPosts
-
Delphi 7 is 24 years old and can’t remember if it supported DoubleBuffering property. But if it does not, just search DoubleBuffering from your dfm files and removed it.
Double buffering is irrelevant if the skin is active. AlphaSkins buffers itself. Without a skin, you can turn on double buffering with code or publish the property for IDE use by yourself.
In Delphi 12 you can find TNavButtonStyle in the file Vcl.DBCtrls.pas:
TNavButtonStyleItem = (nsAllowTimer, nsFocusRect); TNavButtonStyle = set of TNavButtonStyleItem;You can add that to sDBNavigator.pas unit or just comment out the NavStyle from TsNavButton class. I chose the latter option myself. Not a necessary feature.
-
This reply was modified 4 months, 2 weeks ago by
Lasse.
Also September patch for Delphi 13 was released on friday. Needs more testing but promising.
Just check that the parameters of TBeforeNavigate2 type and DoBeforeNavigate2 procedure are matching. It is saying that those are not a match. There are multiple type definitions for it and defines may be the issue.
I created project files and installed it but I see issues with my projects. Some are Delphi 13 related thou. I will wait the 13.1 fix pack before even trying again.
I attached the project files and group file. There might be some my own files mentioned in project files. Just remove them.
-
This reply was modified 5 months, 3 weeks ago by
Lasse.
Attachments:
You must be logged in to view attached files.February 1, 2024 at 5:10 am in reply to: Application using Alpha Skins in Delphi 12 shows two program windows on the task #71424I have had the same issue with Delphi 11.3 without AlphaSkins. I think I tackled this by overriding CreateParams…
procedure CreateParams(var Params: TCreateParams); override; procedure TMainBaseForm.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); with Params do begin ExStyle := ExStyle and not WS_EX_APPWINDOW; WndParent := Application.Handle; end; end;It is not about Windows dark mode but control dark theme. SetWindowTheme is getting the control handle as a parameter.
Winapi.UxTheme.SetWindowTheme(Handle, PWideChar(‘DarkMode_Explorer’), nil);So, you just need to decide when the used control skin is dark and then set the theme for it. These are Windows controls at their core and the arrow painting is coming there. It is also possible to draw those arrows by yourself but then you also need to decide when the control is dark.
I use dark skins a lot in my projects and you can get it working.
Attachments:
You must be logged in to view attached files.See https://www.alphaskins.com/forum/?topic=treeview-and-fluennight-skin
It is the same issue.
Yes, you need the source code for that. There is a quite huge reason why the AlphaSkins is not updated. The war is still going on.
You can create C++ project files from the Alexandria files by yourself. No information on when the official project files will come, if they ever will.
Reading the code reveals that there is no property for this. But in TsPageControl.InitTabContentData you see that there is BtnOffsX which is constant. That procedure will initialize the dContent parameter for TsPageControl.PaintButton.
const BtnOffsX = 4; // Offset of the Close button from right borderYou need to fix the original code to move it. However, I think that close button is exactly in the right place. Or maybe you are using some skin which is not ok.
-
This reply was modified 2 years, 3 months ago by
Lasse.
Here it comes. Include file also included.
Attachments:
You must be logged in to view attached files.I also see the Yukon became Athens. I will fix the project files and upload them soon.
Ooops, that is my own control. You can delete it.
This depends on your code. The point is to call the Winapi.UxTheme.SetWindowTheme. You can do this in many different places.
1. Inherit TsTreeView control and add for example WindowTheme property to set it
2. Use interposer class TsTreeView = class(sTreeView.TsTreeView) and do the same
3. Fix the original TsTreeView code and do the same
4. Call it when initializing your form likeWinapi.UxTheme.SetWindowTheme(YourTreeView.Handle, PWideChar(‘DarkMode_Explorer’), nil);I don’t know what is the best solution for you. If you are using TsTreeView more than 1 place, then I suggest the first. I also suggest using virtual treeview control https://github.com/JAM-Software/Virtual-TreeView
Fix:
sDefs.inc: {$IFDEF VER360} {$DEFINE DELPHI_12}{$ENDIF}
sSkinProvider.pas
function SysBorderWidth(... ... {$IF DEFINED(DELPHI_11) OR DEFINED(DELPHI_12)} // {$IFDEF DELPHI_11}There are also two other DELPHI_11 ifdefs which must be fixed.
-
This reply was modified 2 years, 4 months ago by
Lasse.
-
This reply was modified 4 months, 2 weeks ago by
-
AuthorPosts