The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,830 other subscribers

Archive for the ‘Delphi’ Category

Getting started · MahdiSafsafi/DebugEngine Wiki · GitHub

Posted by jpluimers on 2018/12/13

Enabling stack traces in Delphi: [WayBack] Getting started · MahdiSafsafi/DebugEngine Wiki · GitHub:

Using DebugEngine stack trace when error occurs:

All what you need to do is to include DebugEngine.HookException unit into your project. And each time an error occurs, you will be able to get the stack trace from the point where the error occurred.

uses 
  DebugEngine.HookException;

{...}

procedure Foo;
begin
  try
    DoSomething;
  except
    on E: Exception do
      ShowMessage(E.StackTrace);
  end;
end;

You can get similar functionality with JCL.

Via [WayBack] Why Delphi (like other developer environments) natively not included full call stack for every exception? Or if this is possible, please tell me how (wi… – Jacek Laskowski – Google+

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »

Initeresting CodeInsight ToolsAPI.pas bits IOTACodeInsightManager100, AllowCodeInsight, EditorTokenValidChars

Posted by jpluimers on 2018/12/12

Reminder to self: dig deeper in to this thread [WayBack] …In ToolsAPI.pas there’s IOTACodeInsightManager100 which is implemented by my custom CodeInsight manager… – Fl Ko – Google+

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »

Still an interesting thought: I’d like the next update from Emb to NOT contain any new features at all – just a huge bundle of bug fixes

Posted by jpluimers on 2018/12/11

Still an interesting thought: [WayBack] Maybe we need a vote here but personally I’d like the next update from Emb to NOT contain any new features at all – just a huge bundle of bug fixes. We… – Chris Pimlott – Google+.

Especially the comments in it are well worth re-reading.

By now a new Delphi version should have been out, so I am curious how the balance between bug fixes and new features was.

Edit: Fixed bugs are features, so in my opinion Embarcadero should release only bug-fix updates and upgrades for at least two years.

–jeroen

PS: Nice G+ comment at [WayBack] Still an interesting thought: [WayBack] Maybe we need a vote here but personally I’d like the next update from Emb to NOT contain any new features at al… – Jeroen Wiert Pluimers – Google+:

Problem with new features is that they usually come with new bugs. Therefore new features take away developer capacity from fixing old bugs twice.

Posted in Delphi, Development, Software Development | 6 Comments »

VirusTotal: Avira marks a Delphi built executable als false positive

Posted by jpluimers on 2018/12/06

Found out yesterday that Avira marks one of many Delphi 10.1 built executables as false positive; submitted, but VirusTotal shows it as false positive:

Related:

I think it was Avira too that interfered with my Delphi IDE compiling Delphi applications, especially resource compilation:

–jeroen

Read the rest of this entry »

Posted in Delphi, Development, Security, Software Development | 4 Comments »

Dependency Injection in Delphi: use Spring4D and Nick Hodges’ book

Posted by jpluimers on 2018/12/06

Over the past few months, various people asked me where to get started with Dependency Injection in Delphi.

First of all, get this book:

[WayBackDependency Injection In… by Nick Hodges [Leanpub PDF/iPad/Kindle]

This book covers Dependency Injection from A to Z.  In it you’ll learn about Constructor Injection, Property Injection, and Method Injection.  You’ll learn about the right and wrong way to use the Dependency Injection Container.

It’s well worth reading.

Then buy this book and continue reading; it’s more extensive but coming from a Delphi background it’s better to read Nicks’ book first:

[WayBackDependency Injection in .NET: Mark Seemann: 9781935182504

Dependency Injection in .NET, winner of the 2013 Jolt Awards for Productivity, presents core DI patterns in plain C#, so you’ll fully understand how DI works, covers integration with standard Microsoft technologies like ASP.NET MVC, and teaches you to use DI frameworks like Structure Map, Castle Windsor, and Unity.

Then start at these demo projects:

Finally read through these posts and what they link to:

Then compare what you learned with this:

Read the rest of this entry »

Posted in Delphi, Development, Software Development | Leave a Comment »

Delphi Indy “SSL routines:SSL23_GET_CLIENT_HELLO:http request” – means you get an http request, but expecting an https request

Posted by jpluimers on 2018/12/05

A client got this with Delphi Indy “SSL routines:SSL23_GET_CLIENT_HELLO:http request” and was confused.

The message means you get an http request, but are expecting an https request.

If you really want to, you can have one component service both http and https requests, though most of the time you really do not want to: you want to phase out http whenever possible.

Related: [WayBack] delphi – Can a single TIdHTTPServer component handle http and https request in the same time? – Stack Overflow

–jeroen

Posted in Delphi, Development, Indy, Software Development | Leave a Comment »

Behind the Scenes – Coolblue – alles voor een glimlach

Posted by jpluimers on 2018/12/05

The presentations from [WayBack] Behind the Scenes – Coolblue – alles voor een glimlach are on-line:

It was totally booked: [WayBack] Behind the Scenes – Coolblue – alles voor een glimlach

jeroen

Read the rest of this entry »

Posted in Delphi, Development, Software Development | Leave a Comment »

Hi there. Is it possible to get RTTI information for IDE “built-in” classes …

Posted by jpluimers on 2018/12/04

For my link archive: [WayBack] Hi there.Is it possible to get RTTI information for IDE “built-in” classes with an OTA Wizard?Let’s say I create a TRttiContext object in my wizard…. – Fl Ko – Google+

Here is an IDE explorer that helps: [WayBack] GitHub – DGH2112/Delphi-IDE-Explorer: A RAD Studio IDE wizard / expert / plugin that allows you to browser the internal fields, methods, properties and events of the IDE.

–jeroen

Posted in Debugging, Delphi, Development, Software Development | Leave a Comment »

UTF-8 support for single byte character sets is beta in Windows and likely breaks a lot of applications not expecting this (via Unicode in Microsoft Windows: UTF-8 – Wikipedia)

Posted by jpluimers on 2018/12/04

Uh-oh: [WayBack] Unicode in Microsoft Windows: UTF-8 – Wikipedia:

Microsoft Windows has a code page designated for UTF-8code page 65001. Prior to Windows 10 insider build 17035 (November 2017),[7] it was impossible to set the locale code page to 65001, leaving this code page only available for:

  • Explicit conversion functions such as MultiByteToWideChar
  • The Win32 console command chcp 65001 to translate stdin/out between UTF-8 and UTF-16.

This means that “narrow” functions, in particular fopen, cannot be called with UTF-8 strings, and in fact there is no way to open all possible files using fopen no matter what the locale is set to and/or what bytes are put in the string, as none of the available locales can produce all possible UTF-16 characters.

On all modern non-Windows platforms, the string passed to fopen is effectively UTF-8. This produces an incompatibility between other platforms and Windows. The normal work-around is to add Windows-specific code to convert UTF-8 to UTF-16 using MultiByteToWideChar and call the “wide” function.[8] Conversion is also needed even for Windows-specific api such as SetWindowText since many applications inherently have to use UTF-8 due to its use in file formats, internet protocols, and its ability to interoperate with raw arrays of bytes.

There were proposals to add new API to portable libraries such as Boost to do the necessary conversion, by adding new functions for opening and renaming files. These functions would pass filenames through unchanged on Unix, but translate them to UTF-16 on Windows.[9] This would allow code to be “portable”, but required just as many code changes as calling the wide functions.

With insider build 17035 and the April 2018 update (nominal build 17134) for Windows 10, a “Beta: Use Unicode UTF-8 for worldwide language support” checkbox appeared for setting the locale code page to UTF-8.[a] This allows for calling “narrow” functions, including fopen and SetWindowTextA, with UTF-8 strings. Microsoft claims this option might break some functions (a possible example is _mbsrev[10]) as they were written to assume multibyte encodings used no more than 2 bytes per character, thus until now code pages with more bytes such as GB 18030 (cp54936) and UTF-8 could not be set as the locale.[11]


  1. Jump up^ [WayBack“UTF-8 in Windows”Stack Overflow. Retrieved July 1, 2011.
  2. Jump up^ [WayBack“Boost.Nowide”.
  3. Jump up^ [WayBackhttps://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/strrev-wcsrev-mbsrev-mbsrev-l
  4. Jump up^ [WayBack“Code Page Identifiers (Windows)”msdn.microsoft.com.

Via [WayBack] Microsoft Windows Beta UTF-8 support for Ansi API could break things. Wiki Article of the Change… – Tommi Prami – Google+

Related, as handling encoding is hard, especially if it is changed or not your default:

–jeroen

Posted in .NET, C, C++, Delphi, Development, Encoding, GB 18030, Power User, Software Development, UTF-16, UTF-32, UTF-8, UTF16, UTF32, UTF8, Windows, Windows 10 | 2 Comments »

Delphi XE8..Tokyo 10.2 Release 3: Access Violation at address xxxxxxxx in module ‘delphicoreide###.bpl’ whenever I try to create a new unit or form. How to fix it?

Posted by jpluimers on 2018/11/30

[WayBack] Ouch: “It’s due to some Castalia code, that’s merged in Delphi since XE8. It’s only possible to reduce this issue, so it will happen less often… – Thomas Mueller (dummzeuch) – Google+

“It’s due to some Castalia code, that’s merged in Delphi since XE8. It’s only possible to reduce this issue, so it will happen less often. Use: Tools – Options – Editor Options – Color – Structural Highlighting and switch everything off. Looking at how the code is integrated into the IDE, this results in less editor parsing and repainting. Irrespective of that, the handler that causes the Access violation is still attached to the editor. So basically, we will have to wait for this to be fixed in 10.3.”

The errors in 10.2 are related to “EditorStructuralHighlight.TStructuralHighlighter.EvQuery” – Google Search, but older versions can have a different path.

Lets hope that by a new Delphi version has been released that fixes this, but do not expect older versions to get fixes for it.

For XE8, it is enough to disable Castalia, which is on the list of packages to disable in …/Native/Delphi/Scripts/List-Delphi-Installed-Packages.ps1.

More recent versions have the old Castalia code base much more rightly integrated, so the only way is to disable Structural Syntax Highlighting in the Editor options.

More at:

I have seen this happen too, but so intermittently that I could not point it back to this code (especially since I usually have Model Maker Code Explorer and GExerts loaded which makes it harder to trace back issues to actual Delphi things).

–jeroen

Posted in Delphi, Development, Software Development | 2 Comments »