Interesting idea:
[WayBack] Wouldn’t it be nice if Delphi has an attribute that automatically registers your class for you? – Lennart Aasenden – Google+
Source at [WayBack] Autoregister attribute for Delphi | Jon L. Aasenden
–jeroen
Posted by jpluimers on 2018/01/10
Interesting idea:
[WayBack] Wouldn’t it be nice if Delphi has an attribute that automatically registers your class for you? – Lennart Aasenden – Google+
Source at [WayBack] Autoregister attribute for Delphi | Jon L. Aasenden
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2018/01/09
You always have to be careful with Delphi finalization sections cleaning up things that might have not created inside the corresponding initialization section. This is especially true for the System unit.
That one actually contains this little piece of code that is being called after FinalizeUnits is called which also fianalises external memory managers like FastMM:
finalization {$IFDEF WEAKREF} InstHashMap.Finalize; {$ENDIF}...{$IFDEF MSWINDOWS} FinalizeLocaleDate; if PreferredLanguagesOverride <> nil then FreeMem(PreferredLanguagesOverride);...
Which means that you will have to enable the NeverUninstall conditional define as soon as the InstHashMap has been used.
Most often that’s the case with FMX applications that heavily relies on weak references.
The same holds for PreferredLanguagesOverride which is used by SetLocaleOverride and can be worked around by performing this right at the end of the .dpr:
SetLocaleOverride('');
–jeroen
via:
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2018/01/07
If you run into animation problems in Delphi Tokyo 10.2 update 2, then read [WayBack] … In particular I cannot use the use the animation to change the tab in a TabControl… – Raffaele Miola – Google+.
It is likely that RSP-19525 (10.2 Tokyo Release 2 breaks Animation under Android – App hangs).
Some temporary fixes that might help you are here:
I think that for cross platform and especially mobile development means you need to use tools from vendors that live and breathe that, by constantly showing they master these subjects for instance having good apps in the app stores and examples that are regularly updated to the ever changing field.
I really wonder what the rest of the Delphi community thinks about that.
–jeroen
Posted in Delphi, Development, FireMonkey, Software Development | 1 Comment »
Posted by jpluimers on 2018/01/04
A few people recently discovered the beauty of record helpers:
Record helpers can help any value type (which includes enumerated types) so you can add functions to enumerations.
Class helpers can help class types.
There are no interface helpers and likely won’t be there for a long while.
–jeroen
Posted in Conference Topics, Conferences, Delphi, Development, Event, Power User, Software Development | 2 Comments »
Posted by jpluimers on 2018/01/04
[WayBack] Hi there, this is pure curiosity only; but this compiler behaviour seems odd to me. What do you think?… – Agustin Ortu – Google+
The problems start when you prefix the outer class which you have to when using inner consts ([WayBack] Oh nice. Feel free to QP. Fails at least in Delphi XE8. … – Jeroen Wiert Pluimers – Google+).
The big problem in both cases is a formal language specification. The lack of a formal language specification makes it very hard to predict the effect of use cases or generate them for testing.
So this post is yet another request: Please Embarcadero/Idera, come up with a formal language definition for Delphi.
Posted in Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2018/01/01
It is a lot (~300 megabyte compressed download!), but worth it.
Here are the links:
sha256sum UberPdfSdk-1000-0000.tar.gz 215aed6e5b99bd4a923a2916708163df7bffc47e36508d51dac34cd9a4a74337sha256sum UberPdfSdk-1000-0000.zip 608a90fd6b8f352b4d1f9f59d0d1853a957179e7272ce9a58db78bb52ef6b6e3And the quote from [WayBack] LAUNCHED https://uberpdf.org/ … – Joe C. Hecht – Google+
LAUNCHED https://uberpdf.org/
…
337 MB of source and utils in 2,308 Files, 910 Folders before you build (not counting 3rd party source UberBuild downloads).
It’s a start, with much to come.It will get easier now that UberBuild is clean.
I will be updating the docs and website in the next few days.
Special thanks …
I already see room for improvement (such as a setup screen for extra compilers such as Delphi and Free Pascal to keep folks out of shell scripts and from hunting for help in the documentation).
…
–jeroen
Posted in *nix, C, C++, Delphi, Development, Linux, Power User, Software Development, Windows | 3 Comments »
Posted by jpluimers on 2017/12/28
[WayBack] Dear diary, today I learned that it is better to use ifndef rather than ifdef if I want the IDE to keep working properly. I had a uses clause with an i… – Stefan Glienke – Google+
I promised to remind myself, so here it is (:
–jeroen
Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »
Posted by jpluimers on 2017/12/27
A long while ago I quoted [WayBack] Ideara / Embaracdero is flushing away user trust in their ability to do secure computing… – Jeroen Wiert Pluimers – Google+.
Since then they have fixed some of the issues:
Still, parts of their infrastructure run over http or use other insecure patterns.
Infrastructure and DevOps are hard, but an integral aspect of any company.
Hopefully, their most important new-years resolution is to improve on that.
I don’t hold my breath as [Archive.is] https://appanalytics.embarcadero.com/ for more than a month now has been showing
503 Service Unavailable
No server is available to handle this request.
On the other hand: they have improved, so let’s keep our fingers crossed, and it had been running since 2015: [WayBack]Embarcadero Introduces AppAnalytics, the First Usage Analytics Service for Desktop, Mobile, and Wearable Applications
There are three ways to disable AppAnalytics in the Delphi IDE to phone home (this is for Delphi XE8, change the version numbers accordingly):
reg add "HKEY_CURRENT_USER\Software\Embarcadero\BDS\16.0\UsageAnalytics" /v Enabled /t REG_DWORD /d 0 /fdel "C:\Program Files (x86)\Embarcadero\Studio\16.0\bin\TrackingSystem220.bpl"$(BDS)\Bin\TrackingSystem220.bpl(normally having value Embarcadero Tracking System Package) as described in Delphi packages I have disabled by prefixing their description with an underscore (and why)That should at least get rid of the 30 second shut-down timeout in some Delphi versions while they try to post the usage data to AppAnalytics (thanks Uwe Raabe for this great tip!)
–jeroen
Related:
Posted in Delphi, Development, Power User, Security, Software Development | 5 Comments »
Posted by jpluimers on 2017/12/27
It’s too bad that you need workarounds to get ByteStrings working on mobile devices as there are APIs there (like shaders) that work best with them.
There was a nice discussion on this last year at [WayBack] I miss AnsiString on Mobile…not only for Internet but for Shaders also.// FMX.Context.GLES.pasconstGLESHeaderHigh: array [0..24] of byte =(Byte(‘p), … – Paul TOTH – Google+ based in this code example in the FMX library undocumented unit FMX.Context.GLES:
// FMX.Context.GLES.pas
const
GLESHeaderHigh: array [0..24] of byte =
(Byte('p'), Byte('r'), Byte('e'), Byte('c'), Byte('i'), Byte('s'), Byte('i'), Byte('o'), Byte('n'), Byte(' '),
Byte('h'), Byte('i'), Byte('g'), Byte('h'), Byte('p'), Byte(' '), Byte(' '), Byte(' '), Byte('f'), Byte('l'),
Byte('o'), Byte('a'), Byte('t'), Byte(';'), Byte(#13));
There are more than 500 places in the Delphi library sources that uses this construct and even more that do other fiddling (like [WayBack] TEncoding.GetBytes) to get from strings to bytes.
I wonder if by now we still need the workarounds that Andreas Hausladen provides:
–jeroen
Posted in Conference Topics, Conferences, Delphi, Development, Encoding, Event, Software Development | 6 Comments »