Issue #1482: high DPI related: remove 20x20 pixel icons in ImageListIcons8, prefer auto-scaling per OnGetWidthForPPI event

This commit is contained in:
Ansgar Becker
2025-03-29 15:59:23 +01:00
parent 83bf91e6f4
commit 16651e9a3e
2 changed files with 13272 additions and 16553 deletions

View File

File diff suppressed because it is too large Load Diff

View File

@@ -14,7 +14,7 @@ uses
Generics.Defaults, opensslsockets, StdActns, Clipbrd, Types, LCLType, EditBtn,
FileUtil, LMessages, jsonconf, dbconnection, dbstructures, dbstructures.mysql,
generic_types, apphelpers, extra_controls, createdatabase,
SynEditMarkupSpecialLine, searchreplace;
SynEditMarkupSpecialLine, searchreplace, ImgList;
type
@@ -788,6 +788,8 @@ type
procedure actCreateDBObjectExecute(Sender: TObject);
procedure actNextTabExecute(Sender: TObject);
procedure actPreviousTabExecute(Sender: TObject);
procedure ImageListIcons8GetWidthForPPI(Sender: TCustomImageList;
AImageWidth, APPI: Integer; var AResultWidth: Integer);
procedure menuConnectionsPopup(Sender: TObject);
procedure actExitApplicationExecute(Sender: TObject);
//procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
@@ -4527,6 +4529,14 @@ begin
PageControlMain.SelectNextPage(False);
end;
procedure TMainForm.ImageListIcons8GetWidthForPPI(Sender: TCustomImageList;
AImageWidth, APPI: Integer; var AResultWidth: Integer);
begin
// Scale for intermediate resolutions which were not added explictly
// https://wiki.freepascal.org/TImageList#How_to_create_a_multi-resolution_ImageList_in_the_application
AResultWidth := AImageWidth * APPI div 96;
end;
procedure TMainForm.actEmptyTablesExecute(Sender: TObject);
var