Mostly
– explicit static global variables
– const, sign and down casts safety
– same-named variables in nested scopes
– incorrectly identified uninitialized variables
– semicolon after function implementation
– unused variables, fields, arguments and macros
– exact include filename case
– field initialization order
– typename use
– struct vs class declarations
– incorrectly identified uninitialized variables
– refactoring to solve Clang internal compiler error when using new variable in __finally block
Source commit: 3da995ff5169eefcfe3b3b7cc0d019c660096c07
https://winscp.net/tracker/2345
Comboboxes with csDropDownList style do not reflect the Color, but do with csOwnerDrawFixed.
csOwnerDrawFixed seems to behave the same, except for the height, which needs to be explicitly set slightly higher
Buttons are still white - they'd have to be custom-drawn (using "Windows10 Dark" custom style)?)
SetParentColor is probably obsoleted by 3a887624
Source commit: 851489ffff36845467f664a8a4a08d0556c1d2eb
Reverts e55f27da
Fixing some anchors and tab order on the way
Dialogs (and controls with specific width or height) are now about 10% wider
Note that main form already used the Segoe UI:9 by explicitly using UseDesktopFont for most/all of its controls
Layout rules
- follow IDE design guidelines in general
- controls start at 8x8, but at 9x9 in group boxes and 22v if group has title
- right and bottom padding in groupbox is the same as left padding
-for checkboxes the bottom padding of the checkmark is the same as left padding = 10
- buttons are 80x25 by default, with +14v with dropdown
- checkboxes/radiobuttons are +2h
- labels are 15 high, textboxes/comboxes 23
- indentation is controls under checkboxes is +16h
Source commit: 09a558e92af838e142d3624cb433cc052782881c
Overall, the test for cancel is probably redundant for all scenarios. But to limit impact, I'm keeping it for most scenarios, except for the delete.
Source commit: c24c339bd5c5621a74c356b8189487e35dc2ab41
Because timestamps returned by FileAge and TSearchRec.TimeStamp do not match anymore.
They both returned "wrong" timestamp in XE6. In 11, TSearchRec.TimeStamp was "fixed", but FileAge wasn't.
SysUtils' TSearchRec.TimeStamp not seem to behave the same as our TSearchRecSmart::GetLastWriteTime()
Source commit: eabc8d1804da280ca5e9a158c27cc91ed5ee2302
– Control's Canvas does not have Font updated when painting, so it needs to be set explicitly in some places
– Page control drawing was not only incompatible, but broken in general, so it was refactored – giving up on trying to make it 100% mimic system drawing
– CM_DPICHANGED replaced with OnAfterMonitorDpiChanged for form-level scaling. Not really necessary, just for style. Though it is not called for initial resize (at least when starting on primary monitor with temporary non-system DPI)
– OnResize is not called for DPI change, so in some instances, some OnResize call was duplicated in OnAfterMonitorDpiChanged/CM_DPICHANGED
– Scaling of thirdparty box still does not work correctly (but Updates box works??)
– Scaling on primary monitor with temporary non-system DPI is bad
– TTreeView enabled DPI scaling when using Images that is not Scaled
– Discaring obsolete FSiteButtonsPadding workaround
– Controls programmatically added to form are automatically scaled to the form's DPI (relevant for message boxes)
Source commit: a86dddbfada30a5bc409687489bdcd12842050af
Comments:
- .res files seem to be linked automatically, so explicit entries in project files caused duplicates
- JCL updated for compatibility with BCB11 (jcld28win32.inc obtained by running JCJ installer [uninstalled afterwards])
Source commit: ec28d10a0bbb346ed2bb3940aed37e777342e663