-
Content Count
135 -
Joined
-
Last visited
-
Days Won
2
Wagner Landgraf last won the day on April 22 2023
Wagner Landgraf had the most liked content!
Community Reputation
49 ExcellentRecent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
Best strategy to set up global Release/DebugDCU paths in the IDE, as example for Spring4D DCUs
Wagner Landgraf replied to HaSo4's topic in Delphi IDE and APIs
Curious to hear why you consider -r an atrocity. -
Best strategy to set up global Release/DebugDCU paths in the IDE, as example for Spring4D DCUs
Wagner Landgraf replied to HaSo4's topic in Delphi IDE and APIs
Well, you need to add library path configuration to the new Delphi IDE. Unless you use migration tool to migrate library path settings from a previous to new Delphi version. That is registry editing, anyway. This has nothing to do with $(Auto). It's used to separate settings per "project", or per "environment". It's interesting how developers tend to reduce the truth to their own experience. It's like the old "Free vs FreeAndNil" discussion or "which language is best": usually a person with strong opinion ignores other users' experience or needs. It's not that simple. As I said, building only generates the binaries (dcu's, dcp's and bpl's). But you still have to add the folders containin the dcus to the library path - if you use them globally. You still have to handle the location of generated bpls and make sure Delphi can find them. No custom scripts? You still have to build the projects for all the platforms you use. If you use all of them, good luck manually building from the IDE a gazillion of packages for a gazillion of platforms - it can be as many as 10 in Delphi 13. And good luck waiting for such building, one after one. Want to have it really correct? You have to build the binaries for both Release and Debug configs, and add the proper folders to both Library Path and Debug Library Path, so when building your own application for Release it won't add debug info from 3rd party libraries, and when building your application for Debug you will be able to debug into the 3rd library code. You want to ctrl+click an identifier from a 3rd party library and have the IDE Code Insight navigate to its source code? You have to add the folders of the source code to Browse Library Path so Code Insight and debugger can properly find the unit you need to open and show it to you. You want to have them installed in both 32-bit and 64-bit IDE? You also have to rebuild the design-time packages for 64-bit platform and also install them in the 64-bit IDE. The list goes on and on. Wrong. Again a generalization. In either case, those are all reasons why we created Smart Setup and tried to make it as flexible and fast as possible. -
Best strategy to set up global Release/DebugDCU paths in the IDE, as example for Spring4D DCUs
Wagner Landgraf replied to HaSo4's topic in Delphi IDE and APIs
That is not 100% true. Delphi has the -r (registry) feature where you can launch different instances of Delphi with different settings, including installed packages, library paths, etc. -
Best strategy to set up global Release/DebugDCU paths in the IDE, as example for Spring4D DCUs
Wagner Landgraf replied to HaSo4's topic in Delphi IDE and APIs
For command-line compilation using msbuild to work. msbuild is Microsoft tool which doesn't use the Registry, it uses a chain of xml-based project. EnvOptions.dproj is one of them, thus the IDE updates it according to the Registry for msbuild to work. -
Best strategy to set up global Release/DebugDCU paths in the IDE, as example for Spring4D DCUs
Wagner Landgraf replied to HaSo4's topic in Delphi IDE and APIs
Update the registry. That is the source of truth. The EnvOptions.dproj file is updated when Delphi IDE is open. Why? Delphi has been working like that since forever. Most development platforms to the same, i.e., create binary, unversioned files in the same repository as the source code. That's what .gitignore is for. Specially for 3rd party, vendor software where you couldn't care less for the source code. Nevertheless, you can try installing Spring4D using TMS Smart Setup. It has a feature of mega folders where you can define where the DCUs will be located for all or each product you install: https://doc.tmssoftware.com/smartsetup/guide/configuration.html#using-dcu-megafolders -
Delphi na Estrada 2025 – A Technical, In-Person Delphi Event Across Brazil
Wagner Landgraf posted a topic in Tips / Blogs / Tutorials / Videos
If you're a Brazilian Delphi developer looking for solid technical content, practical insights, and direct access to experienced professionals, don't miss Delphi na Estrada 2025 — the largest free, in-person Delphi event in Brazil. In May 2025, the event will tour eight major cities, delivering a half-day of focused technical sessions on Delphi development. Topics will cover language evolution, real-world use cases, advanced techniques, ecosystem tools, and live presentations by top experts — including Embarcadero MVPs and international guests. ✅ Key Information Free registration In-person only Held in Portuguese Afternoon sessions (1pm–6pm) Different speakers in each city 📌 Schedule and Registration Links: Porto Alegre – May 12 Chapecó – May 14 Curitiba – May 16 Campinas – May 19 Rio de Janeiro – May 20 Teresópolis – May 21 Brasília – May 22 Fortaleza – May 23 Each stop will feature a unique lineup of speakers and topics. You can expect technical deep dives into current Delphi best practices, performance tips, component and architecture design, integration with modern services, and lessons from real-world projects. 🔗 General info and registration: https://www.delphinaestrada.com.br Seats are limited — secure your spot now and take part in one of the most relevant Delphi community events in Brazil this year. -
Adding basic AWS S3 operations to Delphi app
Wagner Landgraf replied to Paul Dardeau's topic in Network, Cloud and Web
Also an option: https://github.com/landgraf-dev/aws-sdk-delphi https://landgraf.dev/en/aws-s3-support-in-aws-sdk-for-delphi -
Why there is no line number in debug information (using JclDebug)
Wagner Landgraf replied to Wagner Landgraf's topic in RTL and Delphi Object Pascal
That's the mystery, isn't it? First, thanks a lot for the detailed test. So let me try to summarize what you found out: in Release config, even if you check "Debug Information" option to True (in Project Options, Building | Delphi Compiler | Linking), it doesn't generate line number, unless you explicitly add the `{$D+}` directive in the source code, is that correct? If yes, I think finding out the reason might explain what's happening here. For the record, I'm using *Debug* config, and "Debug Information" is set to True. But still, I can't get line numbers. So maybe what's happening in my Debug config is the same as it's happening in your Release config? -
Why there is no line number in debug information (using JclDebug)
Wagner Landgraf replied to Wagner Landgraf's topic in RTL and Delphi Object Pascal
And why it can't retrieve the line number from generated map files from my units, but can from Delphi units? -
Why there is no line number in debug information (using JclDebug)
Wagner Landgraf replied to Wagner Landgraf's topic in RTL and Delphi Object Pascal
Sorry, by "DCU" I mean "debug information". -
Why there is no line number in debug information (using JclDebug)
Wagner Landgraf replied to Wagner Landgraf's topic in RTL and Delphi Object Pascal
If that would be the case, it would not show line number information for Delphi units, isn't it? It's "modern" DCU. It just looks that Delphi DCUs have some additional information that my DCUs don't have, but I don't know what that would be. -
Why there is no line number in debug information (using JclDebug)
Wagner Landgraf replied to Wagner Landgraf's topic in RTL and Delphi Object Pascal
No, there isn't. -
Why there is no line number in debug information (using JclDebug)
Wagner Landgraf posted a topic in RTL and Delphi Object Pascal
Hi all, I'm getting call stack information using JclDebug.pas, and I can't get information about line number for my own units. In the (cropped) call stack below, you can see that there is line number information for Delphi units (System.pas, for example), but not for the other units. I have set several compiler and linker options, like stack frames, debug information, map debug info, etc. (see screenshot). JclDebug settings is set to raw, but changing those doesn't seem to make any difference (didn't try too hard):. JclStackTrackingOptions := [stStack, stRawMode]; Does anyone have any idea why it can't get line number? (01C9E319){producao.exe} [0214F319] fpdf.TFPDF.GetStringWidth + $E5 (01C9E314){producao.exe} [0214F314] fpdf.TFPDF.GetStringWidth + $E0 (00006566){producao.exe} [004B7566] System.ErrorAt (Line 5914, "System.pas" + 3) + $4 (000065AA){producao.exe} [004B75AA] System.Error (Line 5925, "System.pas" + 1) + $7 (01C9E314){producao.exe} [0214F314] fpdf.TFPDF.GetStringWidth + $E0 (01CB8FBA){producao.exe} [02169FBA] fpdf_ext.TFPDFExt.WordWrap + $15E (01CB9A86){producao.exe} [0216AA86] fpdf_ext.TFPDFExt.TextBox + $1A2 (01CA46AC){producao.exe} [021556AC] fpdf.TFPDF._out + $5C ... -
MAP2PDB - Profiling with VTune
Wagner Landgraf replied to Anders Melander's topic in Delphi Third-Party
Probably that's what is happening here. I had an older VTune version that worked, and now I installed Tuen 2024 which doesn't. (Of course, "working" was very limited, it didn't support any hardware assisted profiling, but at least the Hotspots with no hardware was working, just to profile application logic). The problem is: where the heck to I find old VTune versions to install? I search everywhere, and I can't find any information. Closes I found was to register for Intel account and go to some download/registration center, but nothing is displayed there are it only lists "registered" products. Does anyone happen to have an old offline installer of 2023, maybe 2022 VTune? -
MAP2PDB - Profiling with VTune
Wagner Landgraf replied to Anders Melander's topic in Delphi Third-Party
Has anybody tried to use VTune inside a VM with M1 (ARM MAC)? I recall I was able to use it, but I rebuilt my VM and now I can't make it work. I get this message: [Instrumentation Engine]: [tid:15552] Failed to allocate Injector, Error = INJECTOR_ERR Pin is exiting due to fatal error I just couldn't find anything relevant about this issue when googling for it. Even the VTune matrix demo doesn't work (so not related to map2pdb).