

PeterPanettone
Members-
Content Count
1354 -
Joined
-
Last visited
-
Days Won
5
Everything posted by PeterPanettone
-
Exporting the list of units a project uses explicitly and implicitly
PeterPanettone posted a topic in GExperts
I have implemented and then expanded the feature of exporting the list of units a project uses explicitly and implicitly in GExperts: First, you need to activate the creation of a Map file in the Project Options: Then you need to activate the corresponding option in the Uses Clause Manager Configuration settings: Build your project and then, in the GExperts Uses Clause Manager, open the Project tab. 1. Click the "Copy/Save List" button to copy the list of Project Units to the clipboard. 2. Hold down the CTRL modifier key while clicking the button to save the list to Disk instead. 3. Click on the DropDown part of the button to dropdown the menu containing the same actions. Since Thomas is busy until weekend, here are the units containing my implementation (so you can build GExperts with this feature) : GX_UsesExpert2.zip -
I have compiled GExperts 1.3.14 build 80 (r2809) in Delphi 10.3.1 : Searched for identifier "newshortcut" in Uses Clause Manager: As you can see in the above screenshot, nothing was found. Then I searched in RFindUnit 1.2.0 and found several identifiers: So why GExperts couldn't find these identifiers? Please have a look at RFindUnit at GitHub - it has a lot of useful features: https://github.com/rfrezino/RFindUnit Unfortunately, the author has abandoned the project. Please ask him whether you can use the source code in the GExperts Uses Clause Manager.
-
MAD PEOPLE certainly should not participate in an IT forum. MAD PEOPLE should rather search for psychiatric help, maybe in a psychotherapeutic forum where they can criticize each other for writing too much.
-
You really mix up WhatsApp and delphi praxis forum. Don't you know what a forum is used for? Please don't annoy forum users.
-
It would be useful if the user could add a list of custom paths to this "Search Path". (Like with the MMX Indexer)
-
BTW, the first page in UCM is "Search Path": Is this the correct term? Shouldn't it be "LIBRARY PATH"?
-
I couldn't wait, so I implemented the Copy Project Units List myself: The code is very simple: If you like, the button will save the list to a text file instead (in a save dialog), if the CTRL key is pressed while clicking. I have sent you the modified source in a personal message.
-
I will do that, but useful ideas from other users could also arise here which could be added to the sf.net ticketing system later.
-
If the user has activated the map file usage for UCM (and activated map file creation in the project options) then the list of the project units in UCM contains all units the project uses EXPLICITLY and IMPLICITLY: This list can be quite USEFUL. So please add a button in the Project tab to copy/save this list. This would be very useful!
-
BTW, in the UCM configuration options there should be a warning when the user activates the "Read project units from map file rather than .dpr" checkbox (otherwise he would not see any units from the map file): The warning message should say: "Please make sure to activate the Map file creation in the Project options".
-
The GExperts UCM has the advantage to open the unit with the selected identifier in the IDE, so the user can inspect it: Unfortunately, RFindUnit does not have this feature. So, in my Christmas wishlist I have inserted a GExperts UCM which has all the other features of RFindUnit.
-
You can process the DCU files whenever you want, MANUALLY: It says: "This command will list all the DCUs files that you don't have access to .PAS and process it to make it available for search." PS: And it would be easy to make it process only those .DCU files where there is no .PAS file with the same name.
-
There is absolutely NO logic in searching only for identifiers STARTING with the search term. Searching for identifiers CONTAINING the search term is the sensible way to go. Or you could add an option radio choice "Starts/Contains the search term".
-
RFindUnit finds madShell.newShortCut - so UCM should also find it. Why it doesn't?
-
Here are the settings: As you can see, the "Parse all units" option is checked. PS: I have also cleared and rebuilt the UCM cache. Still no results for "newshortcut" yet. (However, a search for "newcolor" got 6 results).
-
1. The Unit Dependency Analyzer lists both Classes and System.Classes: Isn't there an option to suppress these multiple unit names which differ only by namespace? (The preference should be given to fully qualified namespace). 2. As you can see from the above screenshots, both are indicated as "no source found": This is strange, as the source file is located here and should be found: c:\program files (x86)\embarcadero\studio\18.0\source\rtl\common\System.Classes.pas MMX13 in Delphi 10.1 Berlin
-
Issues in Unit Dependency Analyzer
PeterPanettone replied to PeterPanettone's topic in MMX Code Explorer
BTW, in the Dependency Analyzer Settings, in the Compiler version dropdown menu there are only Win32 compiler versions listed: Why are there no Win64 compiler versions listed, as my project is for the Win64 platform? -
Does anybody know an IDE addin that can create a project-wide uses-clause report, i.e. a report containing all uses-clause unit-names from all units in the project (without doubles)? For example: Unit1 contains this uses clause: uses Winapi.Messages, System.Variants, System.Classes, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, AdvEdit, AdvEdBtn; Unit2 contains this uses clause: uses Vcl.Controls, Vcl.Forms, Vcl.Dialogs, AdvGlowButton, Vcl.ExtCtrls; The report would then contain: Winapi.Messages, System.Variants, System.Classes, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, AdvEdit, AdvEdBtn, Vcl.ExtCtrls, AdvGlowButton;
-
IDE addin for project-wide uses clause report?
PeterPanettone replied to PeterPanettone's topic in Delphi IDE and APIs
Thanks to all! -
IDE addin to automatically add fully qualified namespace to uses clause unit names and variable type declarations?
PeterPanettone posted a topic in Delphi IDE and APIs
Is there an IDE addin to automatically change for example this: var I: Integer; into this: var I: System.Integer; and this: uses Messages, Variants, Classes, Controls, Forms, Dialogs, StdCtrls; into this: uses Winapi.Messages, System.Variants, System.Classes, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls -
IDE addin to automatically add fully qualified namespace to uses clause unit names and variable type declarations?
PeterPanettone replied to PeterPanettone's topic in Delphi IDE and APIs
Thanks. You mean this one? May I add a suggestion: For USER FEEDBACK, change the color of the unit names in the UCM list to another color after the processing. Would be useful. BTW: Where does UCM get the namespace prefixes? ...and it would be nice if it could do for the WHOLE PROJECT, as an option. -
Is there a way to add a system-menu item to all applications? (Not just only to my own application).
-
Add a system-menu item to all applications?
PeterPanettone replied to PeterPanettone's topic in Windows API
On your GitHub web page. I didn't change anything, just compiled your demo. -
Add a system-menu item to all applications?
PeterPanettone replied to PeterPanettone's topic in Windows API
I have downloaded it and tried the GetMsgHook demo (Delphi 10.3.1, Windows 7 x64): The 32-bit worked well straightaway, without signing the DLL etc. The 64-bit version did not work the first time, so I followed the recommendations from the GitHub page: • uiAccess="true" • Code MUST be digitally signed • Your application MUST reside in a trusted location (e.g.; Program Files) As the 64-bit version still did not work, I tried to trace all methods in HooksMadeEasy.GetMsg.pas with CodeSite. So I saw that the procedures TGetMsgHook.Hookup and TGetMsgHook.Stop worked well, but then the tracing in the TGetMsgHook.GetMsgProc loop seemed to get too much strain on my system and messed it up so I had to reboot the computer. Strangely, after rebooting and recompiling the 64-bit DLL without the GetMsgProc tracing, the 64-bit version suddenly DID WORK: Clicking a system menu item in a 64-bit program showed up in the TestGetMsgHooks.exe feedback list. 1. So why did it work with 64-bit programs only after rebooting? 2. To make it work with BOTH 32-bit programs and 64-bit programs supposedly I would have to start BOTH a 32-bit exe with a 32-bit DLL AND a 64-bit exe with a 64-bit DLL? Or is there a way to activate both the 32-bit hook AND the 64-bit hook with ONE SINGLE exe? -
Add a system-menu item to all applications?
PeterPanettone replied to PeterPanettone's topic in Windows API
Thank you very much!! I am sorry for my late answer, I was away for a personal issue. PS: How can I show you my gratitude? May I send you a small donation?