DPStano
Members-
Content Count
42 -
Joined
-
Last visited
-
Days Won
1
DPStano last won the day on July 27 2021
DPStano had the most liked content!
Community Reputation
15 GoodRecent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
function LCMapStringEx(const Text: string; Locale: LCID; MapFlag: DWORD): string; var pDes: PChar; len, len2: Integer; begin if Text = '' then begin Result := ''; Exit; end; len := Length(Text); len2 := len * 2 + 2; GetMem(pDes, len2); //half -> full try FillChar(pDes^, len2, 0); LCMapString(Locale, MapFlag, PChar(Text), len, pDes, len2 - 1); Result := string(pDes); finally FreeMem(pDes); end; end; Result := LCMapStringEx(Text, LANG_TURKISH, LCMAP_UPPERCASE);
-
Delphi compiled EXE are flagged as malware by anti virus software
DPStano replied to Jaska's topic in General Help
Signing with EV certificate helps like magic, we have been fighting with antivirus software for years, and from my testing there is a problem with some functions in system.pas (not sure which one it's been years) that are imported even never used (almost none existent unused code removal in delphi) that trigger antivirus heuristic. -
cnpack formater is probably the best one out there, I'm using it daily to format code containing inlines without any problem.
-
Is there MQTT connection feature in RAD Studio v10.4?
DPStano replied to TimCruise's topic in Delphi IDE and APIs
https://github.com/bkeevil/mqtt/issues/26 -
Is there MQTT connection feature in RAD Studio v10.4?
DPStano replied to TimCruise's topic in Delphi IDE and APIs
that one looks good https://github.com/bkeevil/mqtt I was planning to use it but don't know if is actually usable -
Does anyone know about free SAX parser (just pascal based, not COM interop)? thx
-
Ref to function used as interface?
DPStano replied to wuwuxin's topic in Algorithms, Data Structures and Class Design
https://stackoverflow.com/questions/39955052/how-are-anonymous-methods-implemented-under-the-hood https://sergworks.wordpress.com/2010/01/27/anonimous-methods-in-delphi-the-internals/ -
Database workbench because it has one handy feature it can debug stored procedures ...
-
What is part of your contiuos integration?
DPStano replied to Mike Torrettinni's topic in General Help
you have to track code changes and some changelog info together, when there are more like 100 commits in each release you are not able to look at every commit and write some info to release notes so normally you would have a file like changelog.md and every change should be written there before the merge, but when you are working on multiple branches with multiple developers its pain for constant rebase and conflict solving (you are constantly rewriting same line) so you will end up with multiple changelog.md files or ideally will move changelog from any tracked git file and now you have like two options write changelog to commit message or merge request description ... first one is simpler for processing so we started with that... and it working nicely ... and before new version release all commit's changelog lines are processed and some nice markdown file is created and uploaded to the web. -
What is part of your contiuos integration?
DPStano replied to Mike Torrettinni's topic in General Help
the changelog is part of commit message like commit title [changelog] - bla bla bla - bla each mr has to have at least one commit with changelog with fixed structure, it will not stop pipeline just auto label merge request with "missing-changelog" or something like that... -
What is part of your contiuos integration?
DPStano replied to Mike Torrettinni's topic in General Help
we are using gitflow + merge request CI pipeline(Gitlab runner) looks like - precheck like changelog/tags validation - build - prepare resources like versioninfo, build info, theme, licences, changelog .... - build dcc32 - postprocessing (like dfm packing clearing) - tests - updater and update - setups inno + msi - deploy (based on branch like upload to web for testerd when mr is merged to develop ...) -
it looks that embarcadero fired all programmers ... it shouldn't be called 11 but maybe 10.4 patch 5 what about something useful for programmers, like code profiler, usable debugger, usable code navigation, code refactoring, and so on ... where are features from roadmap like language extensions? how desperate they had to be when you see "Rich Edit component update removes XP dependencies " in the changelog
-
Is there an elegant way in Delphi to prevent instantiating a class?
DPStano replied to wuwuxin's topic in Algorithms, Data Structures and Class Design
can ctor be private? strict private constructor Create; end; -
Trojan:Script/Sabsik.TE.A!ml detected (false positive of course)
DPStano replied to Clément's topic in RTL and Delphi Object Pascal
we are fighting against AV daily and after talking to few AV companies and their engineers all say there is no difference between unsigned and signed binary even with EV certificate. -
Anybody changing FileVersion directly in dproj file?
DPStano replied to Mike Torrettinni's topic in General Help
it's one of the reasons, next one is that xml(dproj) is one of the worst formats when you have to rebase branch and resolve conflict, and borland/embarcadero moved it to another level, delphi it is constantly changing dproj (switch to debug build -> dproj changes -> switch back and it changes even more, add a new file and you have like thousands new changes and so on) so we stripped all ballast(90%) from dproj and locked it for changes and we separated version info to own rc but version info section has to have the same encoding as defined inside https://docs.microsoft.com/en-us/windows/win32/menurc/stringfileinfo-block and we were constantly changing it from utf-8 to win1250 and back, fields like company name and the product description were almost always broken ... so we switched to simple powershell script that makes everything that we need in the right encoding all the time and it has to take version info from somewhere and dpr was good candidate for it couse it already contained header with similar info...