

John R.
Members-
Content Count
61 -
Joined
-
Last visited
Community Reputation
20 ExcellentTechnical Information
-
Delphi-Version
Delphi 11 Alexandria
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
(FYI) Delphi can't optimize out unneeded inheritance
John R. replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
OT: I know that they shouldn't be compared but when I see the kind of efforts done to optimize many aspects of .NET versions after versions, giving it a very positive image to many (younger and older) developers, I can't see how Delphi could survive once most of us retire if it doesn't bring "sexy" optimizations and promote them. I don't say that this particular one should be implemented but would it be that costly for EMB to hire a full-time developer whose sole task would be to improve performances here and there, and actually blog about it, instead of hiding everything until release for whatever reason ? I believe that this could create a lot of positive feedback and could attract developers intrigued by this "new" Delphi language that they've never heard about 😉 -
I was mentioning another tool to make sure that the problem is actually in your Delphi app, not in your SQLite DB. As an example, a SQLite trigger could cause such problems. But if you've already eliminated that possibility (which was not clear from your original message), then the problem is clearly in your Delphi code somewhere.
-
I would start with manual testing by crafting SQL queries which goes over the limits of your table definition with a tool such as SQLiteSpy: https://www.yunqa.de/delphi/apps/sqlitespy/index If that works from there, it probably means that the limit is still defined somewhere in your Delphi app. Searching for "varchar(256)" or "256" in your *.pas and *.dfm files might be useful, depending on your project's size.
-
Code signing certificates have become so expensive...
John R. replied to RaelB's topic in Delphi Third-Party
Looks like the price is right: https://azure.microsoft.com/en-us/pricing/details/trusted-signing/ Last time I purchased a code signing certificate via KSoftware I paid $188.10 for 3 years which makes it $5.225 / month. Next time I need to renew, I'll probably get the Azure one, which, even at double that price, have the advantages of not needing a USB dongle while being managed by Microsoft itself. So, far more trustworthy than the outdated websites and processes I had to endure in the past. -
Well if they are still using MyCommerce, chances are that they are abandoned as this platform is screwing all of its customers. See: https://www.theregister.com/2024/10/15/digital_river_runs_dry_hasnt/
-
Fantastic work! Thank you for your contributions. If I may, while this component is very powerful, I find that a serious limitation is the number of languages that it supports and the difficulty to add new languages. Many common languages are missing (such as Powershell, Rust, TypeScript, Go...) and creating highlighters is complicated. @pyscripter as you know the internals better than anyone, would it be possible to imagine a way to import highlighters from other projects such as highlight.js: https://github.com/highlightjs/highlight.js/blob/main/src/languages/powershell.js ? Or would it be better to imagine a simpler way to define highlighters ?
-
I sometimes need to use the "Tag" property to store a string, and I've noticed that the number of instances and changes are minimal so I could store them in memory during the application lifetime. That's why I've opted with a global singleton which: Returns a string object when asked, and keeps the instance in memory while the application is running Releases every instances once the application is closed Even if this is not an optimal solution, this is the "cleanest" way I could think of at the time. Something like: uses Spring.Collections; // ... type TStrObj = class(TObject) private FValue: string; public constructor Create(const aValue: string = ''); property Value: string read FValue write FValue; end; type FStrObjects: IList<TStrObj>; // ... constructor TSomeSingleton.Create(); begin FStrObjects := TCollections.CreateObjectList<THndStrObj>(True); end; function TSomeSingleton.GetStringObject(const aValue: string): TStrObj; begin // Create the object Result := TStrObj.Create(aValue); // Add it to the list FStrObjects.Add(Result); end; // ... // Usage: SomeComponent.Tag := NativeInt(Pointer(TSomeSingleton.GetStringObject('Some String Value')));
-
You should probably contact DevExpress support which is usually helpful: https://supportcenter.devexpress.com/ticket/list
-
This looks very interesting to me and a nice move for code signing. My current certificate is valid till the end of 2025 so I can only hope that this service will improve till then 🤞
-
You had to make me open it again, thanks 😉 As far as I can tell, this would be: DevExpress, ImageEn, TRichView, SynEdit. See screenshot:
-
I "hope" that I have a world record with a fantastic 2 minutes and 51 seconds to show the standard action list (for your sanity, you can fast forward most of the video): https://we.tl/t-iC5uIavpK7 This was done without a safety net using Delphi 12 patch 1 in a VM with plenty of memory, disk space and processing power. Can someone beat me ? 😎 Embarcadero employees and/or Delphi enthusiasts are free to use that video, should they care to file a report. I've already spent way too much time on this to even bother looking for, registering to, and learning how to properly use the latest usable web site to report this problem. Meanwhile, I sincerely hope that I've added all the standard actions that I need in my app to avoid opening this dialog again 🤞
-
I can confirm this problem with a large number of standard actions added by third-party components such as ImageEn, TRichView actions... Very annoying and almost unusable, even for cat and dog owners 😉
-
Delphi 12 messing up with test project's DPR when using TestInsight and DUnitX
John R. posted a topic in Delphi IDE and APIs
I'm wondering if there is some workaround to this problem I frequently have. My test project's DPR looks like this: program tests; {$IFNDEF TESTINSIGHT} {$APPTYPE CONSOLE} {$ENDIF} {$STRONGLINKTYPES ON} uses System.SysUtils, {$IFDEF TESTINSIGHT} TestInsight.DUnitX, {$ELSE} DUnitX.Loggers.Console, DUnitX.Loggers.XML.NUnit, // <-- This line is removed from time to time by Delphi IDE {$ENDIF } DUnitX.TestFramework, // [...] But every time I add a new unit to that project and save it, the Delphi IDE decides to remove this line, and only this one: DUnitX.Loggers.XML.NUnit Is that a known problem ? Is there some workaround ? I'm using Delphi 12 Patch 1 with TestInsight 1.2.0.6 -
Indeed, I own a certificate and nothing is prohibiting me from adding a virus / spyware /adware or anything harmful whenever I want. You mentioned the sponsored version of FileZilla which seems to include some questionable content: some anti-viruses seem to treat it as harmful, while others seem to report it as Adware. It doesn't matter if it has been signed or not. Regarding to the importance of a code signing certificate, it depends how you plan to distribute your application and your target audience: Windows will try to discourage people from installing applications which are not signed, and some people such as myself, will hardly if not ever (without extra precautions such as VMs) run any non-signed EXE software. You have access to plenty of documentation about the benefits of code signing online: https://www.digicert.com/signing/code-signing-certificates Your choice!
-
The URL is https://download.filezilla-project.org/client/FileZilla_3.66.5_win64_sponsored2-setup.exe So perhaps this is the reason ?