-
Content Count
2971 -
Joined
-
Last visited
-
Days Won
106
Everything posted by dummzeuch
-
If I understood this correctly, a Python subprocess starts an external program, connects its stdin/out/err to pipes and gets the return code when it exits. There is nothing like this in the standard Delphi RTL but there are multiple third party options. If I remember correctly one is in the JCL, another is my own TAsyncExec class in unit u_dzAsyncExec which is part of my dzlib library.
-
Where to put an app in Windows startup and shutdown and sleep mode?
dummzeuch replied to JohnLM's topic in General Help
Putting your program into the autostart folder will ensure that it is started when windows starts (or actually, when the user logs on). You can then let it run with an invisible window and handle messages that announce the other events: WM_ENDSESSION WM_POWERBROADCAST -
INTAServices.AddMasked seems to be broken in Delphi 12
dummzeuch replied to dummzeuch's topic in GExperts
Thanks for the hint. I thought about that approach too, but unfortunately that's very difficult to do with the current way GExperts works: Each expert registers its own action / image with the IDE, removes the action when the expert is disabled and adds it again when the expert is enabled. All this without restarting the IDE. On top of that this API was introduced at some time after Delphi 6 (haven't checked when exactly), so I'd need to use two different ways to still support all currently supported Delphi versions. Btw: Are you aware that Project Magician registers an action without a name? That means it cannot be added reliably to a toolbar. I found that today while investigating an issue with the GExperts Editor Toolbar. -
Favorite feature(s) of other editors that Delphi does not offer
dummzeuch posted a topic in Delphi IDE and APIs
I've moved this to a new topic because it is not much related to Delphi 12 being released. Anything from JetBrains... I am not saying that Delphi is stuck in the Stone Age... but it is lagging behind in some areas. OK, I bite: What's your favorite feature(s) in a JetBrains editor that Delphi does not offer? (Excluding things that Delphi offers but that don't work.) -
Issue with Color Names Overlay in Object Inspector
dummzeuch replied to Shrinavat's topic in Delphi IDE and APIs
If nobody files a bug report, there will be no fix. -
Warn about second instance of the IDE starting
dummzeuch replied to Jud's topic in Delphi IDE and APIs
I'm not aware of such a warning in Delphi, but GExperts shows one. It's enabled by default and can be disabled in the dialog itself. To enable it again later, go to the messages tab in the GExperts configuration dialog. -
Issue with Color Names Overlay in Object Inspector
dummzeuch replied to Shrinavat's topic in Delphi IDE and APIs
By filing a bug report with Embarcadero -
Is there a Metadata reader/writer/editor unit for FMX/Android?
dummzeuch replied to JohnLM's topic in FMX
As far as I remember there is nothing in ccr-exif that relies on the VCL. And since it supports non-Windows targets it should work with FMX projects. (But I might be wrong. I never explicitly checked for that dependency.) -
Increasing registration count not possible without active maintenance support
dummzeuch replied to Leif Uneus's topic in Delphi IDE and APIs
If that's the case, take them to court. I'm pretty sure that's illegal in most countries. -
You can install all main versions of Delphi in parallel. Since Delphi 10.4 (Sydney) and Delphi 12 (Athens) are both main versions, you are fine. Note though, that Delphi 12 will register itself for opening all Delphi related files so double clicking on a project will open it in Delphi 12 which might not be what you want. (All 10.x Versions (10.0 .. 10.4) were main versions, 10.x.y versions were updates to 10.x. Fortunately Embarcadero has stopped this silly numbering scheme now, but we have to live with that legacy.)
-
How can I force a record to be allocated on the heap ?
dummzeuch replied to dormky's topic in Algorithms, Data Structures and Class Design
Pointers have their uses, but they come with risks. Skilled programmers know how and when to use them, but most important, they don't use them when they are not necessary. They also know that pointers can make debugging hell. Unfortunately there are many programmers who use pointers where they are not necessary. Of course they still think they are skilled, because they use pointers. -
Creating a recent folder location list in an INI file
dummzeuch replied to JohnLM's topic in Algorithms, Data Structures and Class Design
Alternatively omit the Count entry and simply read all entries in the section [mru]. -
Are you talking about just the tabs for Code, Design and History? No, these cannot be hidden. But if you are talking about the docked windows below that, containg messages, refactoring etc, you can undock that window and dock it somewhere else (I dock most of these on the right hand side) or simply close it. Don't forget to save the desktop otherwise it will pop up again any time the desktop is loaded.
-
Is that just me or is Delphi adding itself to the main list of the Windows Start menu every time the IDE is started? Is there an option to disable this annoying behaviour? My start menu is full enough, I don't need additional entries that come back even when deleted.
-
I doubt that it is this "helpful" Windows functionality. I start Delphi 10.2 and 2007 a lot more often than Delphi 12 and they don't show up there.
-
Delphi 12 IDE, auto-formatter mutilates generics
dummzeuch replied to A.M. Hoornweg's topic in Delphi IDE and APIs
And also, in the most recent source code (no release yet, maybe this weekend, but no promises), it supports multiline strings. -
There are currently some unit tests for the GExperts code formatter that fail. It all depends on how spaces after comments {comment} or (*comment*) are handled. A How should the code formatter handle the following code: procedure bla; begin {some comment} SomeStatement; end; A1 Keep the space after the comment: procedure bla; begin {some comment} SomeStatement; end; A2 Remove the space after the comment: procedure bla; begin {some comment}SomeStatement; end; B what about this code: procedure bla; begin {some comment}SomeStatement; end; B1 should the formatter leave it as is? B2 should it insert a space, so it gets changed into: procedure bla; begin {some comment} SomeStatement; end; C what about this code with multiple spaces after the comment: procedure bla; begin {some comment} SomeStatement; end; C1 should the formatter remove the spaces: procedure bla; begin {some comment}SomeStatement; end; C2 or should it reduce them to one space: procedure bla; begin {some comment} SomeStatement; end; C3 or should it leave them as them as they are: procedure bla; begin {some comment} SomeStatement; end; The current code will always remove the spaces, so its A2, B1 and C1. I'm tending towards keeping the number of spaces as they are, that would be A1, B1 and C3. I'm definitely not going to make this configurable. I wouldn't even know how to describe this configuration option.
-
Delphi 12: Install Packages inconsistency?
dummzeuch replied to PeterPanettone's topic in Delphi IDE and APIs
That's actually the same frame which is shown in these two dialogs. If a project is loaded, you are viewing and possibly changing the project's configuration. If no project is loaded, you are viewing and changing the default packages loaded by the IDE without a project and for new projects. As far as I remember that has always been the case. (Or I might have misunderstood you.) -
They do. As long as you haven't got an alternative development environment for the work you rely on, you will have to pay for Delphi or stay with an older version.
-
On the first page of the wizard, there is a button for doing that, somewhere on the bottom left. I can't look up how it is called now because the installer wants to uninstall everything first when I start it now.
-
That's for historical reasons. And with the "new" strict keyword even this can be prevented. If you only want to access the Canvas property you can change your TGetCanvas class to this: type TGetCanvas = Class(TCustomControl) published property Canvas end; This is used by all the classes that derive from TCustomControl to publish protected Canvas property, so it will always work.
-
Favorite feature(s) of other editors that Delphi does not offer
dummzeuch replied to dummzeuch's topic in Delphi IDE and APIs
That's not really an editor feature, is it? -
Favorite feature(s) of other editors that Delphi does not offer
dummzeuch replied to dummzeuch's topic in Delphi IDE and APIs
I wrote my own IDE "integration" using the tools menu a few years ago. Scooter Software actually contacted me about it when they ware approached by Embarcadero to license BC for the IDE integration. I like to think that my simple work was what sparked the idea. Having said that I don't like the IDE integration either. Its complicated to use. -
GExperts Code Formatter does not support multi line strings
dummzeuch posted a topic in Tips / Blogs / Tutorials / Videos
I expected this but just confirmed it: The GExperts code formatter does not handle multi line strings correctly (bug #337) For now the workaround is using the comment to prevent formatting ... read on in the blog post -
GExperts Code Formatter does not support multi line strings
dummzeuch replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
That was easier than I thougth: As of revision #4112 the formatter now actually does support multi line string literals. And only those unit tests that already failed still fail. Of course that does not mean that I have not broken anything else. You are welcome to build your own dll and test it.