Plugins made in Lazarus, how many have tried?

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: Hacker, petermad, Stefan2, white

Post Reply
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50421
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I did (makebat, diskdir), but didn't use Lazarus forms. Instead, I have used normal Windows DialogBox() calls.
Author of Total Commander
https://www.ghisler.com
User avatar
Dalai
Power Member
Power Member
Posts: 9961
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

I tried to make a WFX (file-system) plugin with Lazarus, but it failed completely due to some error in the most basic functionality. DLL_PROCESS_DETACH was called in the middle of doing something for some reason, and since this was cleaning up objects, closing handles and the like, subsequent access to that objects/handles would fail, of course - and crash TC in most cases.

After switching to Delphi all these problems were solved immediately, without changing any code (IIRC).

I don't remember, which Lazarus version I used (probably 1.0.x). Perhaps I made something wrong, I don't know. However, the same code was already working in Delphi 5.

Regards
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Dalai
Power Member
Power Member
Posts: 9961
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: report bugs to freepascal team

Post by *Dalai »

Z505_Software wrote:The question is, are you reporting the bugs to the fpc team if you have found them? I know the biggest problem with bugs is that people don't report them, so they don't get fixed.. did you report the dll_detach issue?
No, I didn't. First, I neither know where the problem is nor whether it is an actual bug or if I did something wrong, or if there has to be something made differently in Lazarus. You have to be sure it is a bug before you're going to report it (I was not). Secondly, I wanted to support Unicode with little to no additional effort, so there was need to use a more recent Delphi version anyway. And lastly, there are issues in Lazarus regarding strings; you never know (at least I don't) whether they have to be converted to ANSI, Unicode or UTF-8 since they're mixed all over Lazarus/FPC and the LCL. In Delphi I just use the type string and that's it.
One problem with reporting bugs is you have to create a simple test case and prove the bug exists, which is sometimes hard if you don't know exactly what the bug is. You might have a big test case and making it a small test case to submit to fpc team can take time. But it is worth it because fpc team does fix many bugs...
I agree that reporting bugs is really important. However, that would have been impossible for me since it was my first time to write a DLL and the first time to write a TC plugin. What I'm trying to say: It was pretty much work to get the plugin to do what I wanted it to do and to get it as stable as I wanted it to be. Furthermore, I don't see how I could have provided a small test case - without writing a plugin system (host and DLL) myself or the requirement for the FPC developers to use Total Commander. And, I didn't test whether my code worked in the latest Lazarus snapshot at that time; I used a stable version because I wanted the plugin to be as stable as possible.

So, I'm still not sure whether it is/was Lazarus that had issues or if it was me who had issues with Lazarus ;).

Regards
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Post Reply