-
Content Count
3019 -
Joined
-
Last visited
-
Days Won
108
Posts posted by dummzeuch
-
-
Fixed the problem in revision #1737.
Something must have changed in the way Delphi handles WideStrings between Delphi 10.4 and Delphi 11. The hack of setting a WideStiring variable to NIL no longer cleared it without decrementing the reference counter, but apparently freed that string. Instead the code now allocates new memory and moves the content to that new memory. Or possibly it never actually worked but for some reason didn't raise an exception until Delphi 11.
While I was at it, I moved the boiler plate code to a new class TEnumStringsHelper so all descendants now only need to implement two simple methods rather than four.
-
On 8/6/2024 at 8:21 AM, dummzeuch said:I just tried it with Delphi 11 and I can reproduce the problem. It also happens in Delphi 12. It does not happen in Delphi 10.2 and 2007 so I guess something in the RTL changed. No solution yet.
The code works fine up until Delphi 10.4 and fails from Delphi 11 on.
If I remember correctly, the largest change between these versions was by monitor DPI support, but I'm not sure wether that was for applications or the IDE or both.
-
For the record:
- The last Delphi version that had a Borland entry under HKLM and HKCU\Software was Delphi 2007 (BDS 5.0).
- 2009 and 2010 were under CodeGear and
- everything after that under Embarcadero.
-
On 10/18/2023 at 1:22 PM, Carlo Barazzetta said:I've some problems using dzlib with Delphi11:
1) An AV inside TEnumStringFiles.Next
2) don't compile with 64bit platform
Is this version the latest?
https://sourceforge.net/projects/dzlib/Sorry, I totally missed this post. I guess answering nearly a year later is kind of limited use for you, but anyway:
Regarding 2: There is only very limited support for Win64 (and none at all for non windows platforms)
Regarding 1: We (I and my coworkers) use dzlib primarily with Delphi 2007 and Delphi 10.2. There is very limited testing for other Delphi versions. Some part of it is used in GExperts so that one gets wider testing, but TEnumStringFiles is not part of that.
Edit: I just tried it with Delphi 11 and I can reproduce the problem. It also happens in Delphi 12. It does not happen in Delphi 10.2 and 2007 so I guess something in the RTL changed. No solution yet.
Yes, https://sourceforge.net/projects/dzlib/ is the latest version, or rather https://blog.dummzeuch.de/dzlib/ which links there and will be updated should I ever decide to host the code elsewhere.
-
34 minutes ago, ChrisChuah said:how do i load the JEDI package into IDE? open the pkg, compile and install from there?
If I remember correctly there is a project group for each Delphi version. You load that into the IDE, do a build all and then install all the designtime packages. Since every 2nd package is a designtime package, it is a lot of clicks, but you can leave out those which you don't use.
-
14 minutes ago, ChrisChuah said:I just installed 12.1 community edition and try to install JEDI Visual Componnent Library 2023.11
It gave me an error that i must install jcl first.
When i tried to uninstall it, it said that the jvclInstall.exe is missing.
I downloaded jvcl from github and try to install locally, then it showed that this version of the product does not support command line compiling. aborting
How can i install JEDI component into the 12.1 community edition via getit.
If I remember correctly, the CE does not contain the command line compiler. The GetIt-Installation for JCL/JVCL requires that, so you can't use that.
Your best bet is to load the JEDI packages into the IDE and compile them there.
-
1 hour ago, David Heffernan said:You've spent more time posting here than you would ever save from this feature existing
Probably even more than implementing that feature in a plugin would take.
-
21 minutes ago, David Heffernan said:But it doesn't change from one build to the next. Or is your problem that on Monday you know that the executable is 25mb but come Tuesday you've forgotten. Maybe you should get some post it notes.
Stop harassing Peter, please.
-
46 minutes ago, PeterPanettone said:Do you mean GExperts could achieve this, formatted as MB with two decimal digits? That would be wonderful!
GExperts as well as any other IDE plugin.
-
-
1 hour ago, David Schwartz said:I think Delphi introduced anonymous methods and closures before Java did.
No, you are wrong. Even anonymous methods were in Java first.
-
4 hours ago, Vandrovnik said:If log level is defined in compile time, he could also use $IFDEF or $IF instead 😄
Yes, some special characters plus if plus ifend are a lot more convenient than an if then statement. I'm sold.
-
2
-
-
2 hours ago, timfrost said:This seems to meet all the criteria of readability, simplicity and efficiency.
It's cumbersome to have that if statement all the time.
-
So there seems to be a bug: When the toolbar is disabled, enabling it for the left hand side (and probably anything but the top, but I haven't tested it) will not be shown. After enabling it for top it is shown and can then be moved to the left. (At least that is what I could reproduce, I don't use that toolbar myself).
Can you confirm this?
-
Try to put it on top. Does that work? Then, change it to the left.
-
I forgot to mention, that in the lastest GExperts Beta release for Delphi 12, the configuration tab for the Editor enhancement has been moved to a separate “Editor Enhancement” expert.
https://blog.dummzeuch.de/2024/02/26/gexperts-editor-enhancement-tab/
-
1
-
-
8 minutes ago, JonRobertson said:9 minutes ago, JonRobertson said:you can use the subprocess module to run a shell command, like "ls" or "ping", and get the output of that command in your Python code. You can also use it to run other Python scripts or executables, like .exe files on Windows.
That's why I asked when others suggested TDOSCommand. From the github page, it only mentions command line apps.
TDosCommand can run other Delphi programs and executables.
It can even run python scripts, if the interpreter for that is installed.
So I guess that fits the bill.
-
2 hours ago, JonRobertson said:Python's subprocess does more than DOS / command line stuff. How well does TDOSCommand work with Windows executables?
That was the problem with this topic from the beginning.
What exactly is a "subprocess in python"? What does it do, if it is "more than DOS / command line stuff"?
-
I have used something similar, but not for normal types but for nested types.
unit UnitA; interface uses MyTypes; type TSomeType = class(TSomeOtherClass) public type TSomeNestedType = MyTypes.SomeType; end;
The idea is to reference the nested type instead of the type declared in MyTypes, so if the nested type was changed later to something else (but similar enough as to not require code changes), the other code doesn't need to be updated.
Hm, thinking about it now, with a more modern Delphi than 2007 (which I used when I wrote this), I would probably use Generics instead.
-
1 hour ago, gioreva said:I apologise, I had not done the linker ones.
Thanks for your help.
Now it's 3.5Mb and everything works.
Is there a way to optimise the code more and reduce the size?
Turn off (remote) Debug symbols in the linker options, if it is turned on.
-
Just for completeness, there are also some lists on version information on the Delphi Wiki:
https://delphi.fandom.com/wiki/Delphi_Release_Dates
https://delphi.fandom.com/wiki/CompilerVersion_Constant
https://delphi.fandom.com/wiki/Delphiversions.inc
https://delphi.fandom.com/wiki/RTLVersion_Constant
https://delphi.fandom.com/wiki/Borland_Compiler_Conditional_Defines
https://delphi.fandom.com/wiki/Delphi_Build_Numbers
I (and a few others) try to keep them more or less up to date, but I just noticed that some have lapsed again.
Having seen that there are other lists that seem to be better maintained I'm considering just pointing there instead.
The whole Wiki is mostly outdated anyway, the original maintainer(s) having disappeared.
-
1
-
1
-
-
1 hour ago, corneliusdavid said:That's pretty nice and comprehensive code!
I inherited most of it, the part that I wrote was based on the existing code, so I can't take the credit.
-
The difference between updates and patches seems to be that updates change the version number on the about dialog and patches don't. If installed via GetIt, patches are listed in the registry and will be shown in the about dialog as an additional information, but that does not happen if you don't use GetIt for the installation.
Both can switch some executables, which then will get a new version number, but you have to know for which executables to look to see that difference.
I have code in GExperts that identifies the current update and patch level in case some workaround or fix is necessary. I thought about making a small stand alone tool from this, but never came around doing it. That code is in
https://sourceforge.net/p/gexperts/code/HEAD/tree/trunk/Source/Framework/GX_GetIdeVersion.pas
In case anybody is interested.
-
2
-
1
-
-
On 7/9/2024 at 12:22 PM, Rollo62 said:AI already dictates how the the political correct content shall look like and refuses to produce anything else you ask for.
Break out the crayons and draw away. We don't need no stinkin' AI.
-
1
-
Autocompletion for TEdits fixed for Delphi 11 and later
in Tips / Blogs / Tutorials / Videos
Posted
My dzlib contains several helper functions to add TEdit-autocompletion for directories, files (with a filter) and generic strings from a string list. All of them worked fine for me and were used in several our internal programs. But that changed when trying them with Delphi 11 as @Carlo Barazzetta found out: Using these functions now raised a system exception as soon as the IEnumString.Next method was being called the first time. It turned out that the way I tried to cheat with the memory allocation of WideStrings no longer works. Read on in the blog post.