

PeterPanettone
-
Content Count
1354 -
Joined
-
Last visited
-
Days Won
5
Posts posted by PeterPanettone
-
-
-
31 minutes ago, dummzeuch said:Sorry, but I cannot accept this as a patch. This is not compatible to older Delphi versions.
I clearly said this is for Delphi 12 Athens. Using just a few compiler conditional directives, you can restrict any code to specific newer Delphi versions, for example:
{$IF CompilerVersion >= 36.1} // Code for Delphi 12.1 or later {$MESSAGE WARN 'Only for modern Delphi versions'} {$ELSE} // code for older Delphi versions {$IFEND}
-
On my HighDPI monitor the CodeLibrarian Search dialog was still broken in r4431, so I fixed it:
This should now work with all DPI settings on the end user side, as it now uses a Manifest in modern Delphi 12 Athens instead of a custom "InitDpiScaler":
constructor TfmCodeSearch.Create(_Owner: TComponent); begin inherited; //InitDpiScaler; // now using Manifest in Delphi 12 end; fmCodeSearch.Scaled := True; // Set in Object Inspector
I've also modernized the LAYOUT from StoneAge Layout (simply place components anywhere without layout considerations) to Modern Layout (use Align and AlignWithMargins properties).
Here is the new source of the Search dialog:
-
-
4 minutes ago, dummzeuch said:Thanks for your suggestion.
I have YOU to thank for such an ingenious product as GExperts!
I could not take over the maintenance of GExperts. YOU are the leading expert for GExperts!
-
20 minutes ago, dummzeuch said:It is yet another bloody per monitor scaling issue and depends on how the monitor(s) is/are configured:
It does not occur if there is one monitor with scaling set to 100, even if another monitor is set to scaling > 100. It also does not occur over Remote Desktop (at least not in my tests).
Since I have got a High DPI monitor and a HD monitor, it does not happen on my system. I had to turn off the HD monitor to reproduce the problem.
Dear Thomas, you are completely right! But all these DPI problems can be OVERRIDDEN by using an optimal LAYOUT. The logical error is to focus only on one issue (the DPI settings) while ignoring the broader context of responsive design and layout adaptability.
-
I use Delphi 12.2 in Windows 11 and have just now downloaded and compiled version r-4418:
1. you should not trust the GExperts users to use the same DPI settings as you when they compile the GExperts source code.
2. you should prioritize LAYOUT over blindly trusting that your DPI settings will work for the users when they compile the GExperts source code.Following rule #2, I have now moved the main dialog buttons down to the bottom into a separate panel, which creates a more logical layout:
In the next step, I will adjust the layout logic for multiple properties.
-
32 minutes ago, dummzeuch said:As far as I am aware this dialog should work with multiple additional properties.
Dear Thomas! Can you please post a screenshot with multiple properties? Thank you! And a happy new year! 🎈🙋♂️
-
Hello Thomas,
Thanks for the information. The GExperts Rename Component expert is indeed useful when changing only the name.
However, with multiple properties, the layout is broken and inconsistent:
-
-
2 minutes ago, havrlisan said:Instead of hardcoding it like this and making it optional (which makes little sense), it would be better to fill the Tab Options (Options > Editor > Tab) with way more options, such as choosing colors for each scenario (locked units, system units, etc.), or disabling them altogether.
Having flexible UI options is always a good thing. Thank you!
-
Better display of tabs in the SourceCode editor (OPTIONAL):
1. Marking of the MainForm unit in bold font
2. Marking files that do not belong to the current project in italicsThis would lead to more visual consistency and transparency in the presentation of the tabs in the SourceCode editor.
What do you think?
Thanks to everyone for taking part in this BRAIN TEST!
-
Another solution could be to subclass TRichEdit and then (temporarily) suppress the TAB character, but it's not worth the effort.
-
3 minutes ago, PeterBelow said:Ctrl-<letter> combos have created control characters since the ancient days of DOS, and ^I (#9) is the TAB character...
Thanks for the information.
-
Using KeyPreview, I have even tried the following trick:
procedure TformTextEditor.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = Ord('I')) and (Shift = [ssCtrl]) then begin CodeSite.Send('TformTextEditor.FormKeyDown: '); Key := 255; end end;
And then in RichEditKeyDown:
if (Key = 255) and (Shift = [ssCtrl]) then begin CodeSite.Send('RichEditKeyDown: '); Key := 0; // does not prevent TAB output! end
-
Even when KeyPreview = True, setting Key := 0; in FormKeyDown does not prevent this strange effect:
procedure TformTextEditor.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = Ord('I')) and (Shift = [ssCtrl]) then begin CodeSite.Send('TformTextEditor.FormKeyDown: '); Key := 0; end end;
-
At run-time, select any text in a TRichEdit and press CTRL+I: The selected text will be replaced by a TAB "character," which has the same effect as pressing the TAB key.
BTW, the same effect occurs in Notepad.
Is there a way to prevent this?
Delphi 12.2
Windows 11 x64
-
To summarize, MMX is an extremely valuable and flexible addition to the Delphi developer's toolkit. I like the fact that you can switch off the bookmarks if you don't need them. Perhaps it would be helpful if the bookmarks were switched off by default during the initial installation.
-
1 minute ago, ULIK said:I use it often for navigation between extracted code and original position, so I find it very useful.
It's nice to hear that someone uses it.
-
10 hours ago, Uwe Raabe said:Sorry, GDPR.
Numbers?
-
3 minutes ago, Uwe Raabe said:Of course!
Who?
-
-
Several MMX actions automatically set Bookmarks in the source code or even set a mark where the ESC key jumps to another position in the source code. I find this extremely disturbing.
Where can I switch this OFF?
-
1
-
-
52 minutes ago, dummzeuch said:the scaling has been initialized
Are you sure that "scaling" generally works as intended? Maybe we could do without it
GetIt in Delphi 12.2 does not work
in Delphi IDE and APIs
Posted
Thanks, it must have been a temporary glitch.