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,862 other subscribers

Archive for the ‘Delphi’ Category

IDE Fix Pack 6.1.2 (supports Delphi 10.2.2) | Andy’s Blog and Tools

Posted by jpluimers on 2017/12/20

Reminder to self to install this soon: [Archive.isIDE Fix Pack 6.1.2 (supports Delphi 10.2.2) | Andy’s Blog and Tools

via: [WayBack] IDE Fix Pack 6.1.2 for Delphi 2009-10.2.2 released. – Andreas Hausladen – Google+

–jeroen

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

R.I.P. Paweł Głowacki – you will be dearly missed, not just in the Delphi community

Posted by jpluimers on 2017/12/19

Last week, Paweł Głowacki passed away. A few words, probably incoherent, as I’m still flabbergasted by the news.

Originally from Poland he had moved to The Netherlands in 2001 (causing his son Mateusz to be far more fluent in Dutch than his dad) while starting to work for Borland, doing the full ride through CodeGear and Embarcadero to Idera as one of their enthousiastic Delphi evangelists.

Having already gone through a rough year myself, it took me some time to sit down and reflect a bit on his sudden passing away.

Most of the information around his passing has been on Facebook.

My current state of mind needs me to jot a few things down, and since Facebook keeps redacting away the information I really want to see (probably a chicken and egg problem, as it also insists showing me stuff I do NOT want to see, causing me to hardly look at Facebook any more, and likely having worsened the issue), below are some links and a screenshot.

Though we didn’t see each other much over the last few years, meeting up was always fun, especially talking about old shared activities (one project, don’t ask, many presentations on conferences and sessions) and his hobbies (for instance diving).

I found out about the latter by sheer coincidence. I’ve a mentally retarded brother for which I’m the curator ad litem. In practice this means not just legal guardian, but also coaching my brother with many events. About 15 years ago, over several years, my brother has stepped up from swimming via snorkeling to shallow water diving (always under supervision of a certified diving instructor).

About once a year, my brothers diving group goes to open water where I suddenly bumped into Paweł of which I knew he did sports (and music: he’s an excellent guitar player) but not exactly which ones.

Some of the coolest Delphi related events we did or attended together were the product launches for the BeNeLux in the early 2010s, ItDevCon conferences in Italy, SDN presentations in The Netherlands and EKON visits in Germany.

Knowing more of each others non-Delphi side, we had much more to talk about. So we mixed conversations about free time and Delphi topics enjoying an occasional drink or two.

I will remember those times. R.I.P. Paweł. All the best to his wife Barbara, son Mateusz, other family members, friends and colleagues.

This is the im memorian that Barnsten – the Benelux reseller for Embarcadero that organised a lot of the events:

This picture was taken by Danny Wind on our last event in Bussum

This picture is taken in May this year at the Accelerate Your Development event in Bussum by Danny Wind.


In Memoriam – Pawel Glowacki

It is with great sadness that we have to inform you about the sudden loss of Pawel Glowacki. He was only 47 years old. Pawel was employed by Embarcadero as Technical Lead but worked very closely with the Barnsten team because he lived in Amsterdam.

Pawel has had great influence on all the Barnsten events and webinars. He always knew flawlessly what was going on in the development tools market. Many new themes and programs have arisen from consultation with him. Most of you have been in direct or indirect contact with him at the live events or via his webinars, books, blogs, white papers etc.

His optimism, technical knowledge and positive attitude to life left a deep impression, but also a great emptiness at the loss of such a unique individual.

Pawel will be buried this Friday in his homeland Poland.

On behalf of the Barnsten team,

Raymond Horsten
Director

–jeroen

PS:

  1. Since many search indexes prefer l over ł: Pawel Glowacki.
  2. Forum thread: [WayBack] Embarcadero Discussion Forums: Paweł Głowacki passed away on Dec 13th …
  3. About 3 weeks late: [Archive.is / WayBack] Farewell Paweł Głowacki – Community Blogs – Embarcadero Community

Read the rest of this entry »

Posted in About, Delphi, Development, Personal, Software Development | 12 Comments »

If you use Delphi or RAD Studio 10.2.2, ensure you have the latest one installed (build 2004) as it fixes some binary DCU incompatibility bugs 

Posted by jpluimers on 2017/12/19

Not all updates are equal, so if you use Delphi or RAD Studio 10.2.2, ensure you have the latest one installed (build 2004) as it fixes some binary DCU incompatibility bugs in the old one (build 1978).

You can get the web-install for that build from [WayBack] 30806 RAD Studio, Delphi, C++Builder 10.2 Release 2 Web Install which states:

We have updated RAD Studio 10.2.2 to address an issue that caused incompatibility problems for a number of third party components.This build (build 2004) replaces the previously released RAD Studio 10.2.2 build (build 1978).

The updated 10.2.2 build requires a full uninstall and reinstall. You will be able to preserve your configuration settings as part of the reinstall.

The new 10.2.2 update build 2004 fixes errors in the old 10.2.2 update build 1978 like:

  • when compiling “F2051 Unit %s was compiled with a different version of System.Generics.Collections.TArray.Sort”
  • when loading BPLs “Cannot find entry point…”

Via: [WayBack] Looks like there was an update to the update. “This CodeCentral entry was updated on Dec 17, 2017 We have updated RAD Studio 10.2.2 to address an issu… – Lars Fosdal – Google+

In that thread, various people have confirmed this build indeed fixes these issues.

–jeroen

Posted in Delphi, Delphi 10.2 Tokyo (Godzilla), Development, Software Development | Leave a Comment »

WinHTTP Cipher restrictions to TLSv1.2 does not work on Windows7, Server 2008 R2 and Server 2012…

Posted by jpluimers on 2017/12/18

This will bite me some time for sure, so for my link archive: [WayBack] TRestClient and Cipher restrictions to TLSv1.2 does not work on Windows7 and Server2008R2 … and how it can be solved… – Günther Schoch – Google+

References:

For at least some Windows 7 and Server 2008 R2 systems, that update (KB3140245) doesn’t automatically turns up in the Windows Update list.

To make matters worse, the page cannot be archived in either the WayBack machine or Archive.is (I tried multiple times with empty results).

Luckily, there is a copy at [WayBack] KB3140245 DefaultSecureProtocols – Security.NL.

After installing the update, you have to ensure you set the DefaultSecureProtocols registry value to the bitmap value that indicates with SSL/TLS versions you want to support:

The DefaultSecureProtocols registry entry can be added in the following path:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

On x64-based computers, DefaultSecureProtocols must also be added to the Wow6432Node path:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

The registry value is a DWORD bitmap. The value to use is determined by adding the values corresponding to the protocols desired.

DefaultSecureProtocols Value Protocol enabled
0x00000008 Enable SSL 2.0 by default
0x00000020 Enable SSL 3.0 by default
0x00000080 Enable TLS 1.0 by default
0x00000200 Enable TLS 1.1 by default
0x00000800 Enable TLS 1.2 by default

For example:

The administrator wants to override the default values for WINHTTP_OPTION_SECURE_PROTOCOLS to specify TLS 1.1 and TLS 1.2.

Take the value for TLS 1.1 (0x00000200) and the value for TLS 1.2 (0x00000800) then add them together in calculator (in programmer mode), the resulting registry value would be 0x00000A00.

–jeroen

Posted in .NET, Delphi, Development, Power User, Software Development, Windows, Windows 7, Windows Server 2008 R2 | 2 Comments »

On my research list – the Delphi ORM Generator (it’s in the Windows store; does it support Spring4D ORM?)

Posted by jpluimers on 2017/12/14

On my research list:

 

–jeroen

 

 

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

What is thread safety anyway?

Posted by jpluimers on 2017/12/13

A nice article [Archive.is] What is thread safety anyway? with a kind reference to the Deadlock Empire translation from C# to Delphi that I made.

In any language, multi-threading is hard, so I really love the quote below:

[WayBack] Multithreading can be hard to do right. The most common point of failure is assuming some code is thread safe when it actually is not... – Dalija Prasnikar – Google+

It reminded me of an old one:

A programmer had a problem. He thought to himself, “I know, I’ll solve it with threads!”. has Now problems. two he

–jeroen

Posted in .NET, C#, Delphi, Development, Fun, Multi-Threading / Concurrency, Quotes, Software Development, T-Shirt quotes | Leave a Comment »

Let’s stop copying C / fuzzy notepad

Posted by jpluimers on 2017/12/07

Ah, C. The best lingua franca we have… because we have no other lingua francas. Linguae franca. Surgeons general? C is fairly old — 44 years, now! — and comes from a time when there were possibly more architectures than programming languages. It works well for what it is, and what it is is a relatively simple layer of indirection atop assembly. Alas, the popularity of C has led to a number of programming languages’ taking significant cues from its design, and parts of its design are… slightly questionable. I’ve gone through some common features that probably should’ve stayed in C and my justification for saying so. The features are listed in rough order from (I hope) least to most controversial. The idea is that C fans will give up when I call it “weakly typed” and not even get to the part where I rag on braces. Wait, crap, I gave it away.

Great re-read towards the end of the year: [WayBackLet’s stop copying C / fuzzy notepad

Via: [WayBack] Old and busted: emacs vs vi. New and hot: Language war, everybody against everybody else. – Kristian Köhntopp – Google+

–jeroen

Posted in .NET, APL, Awk, bash, BASIC, C, C#, C++, COBOL, CoffeeScript, CommandLine, D, Delphi, Development, F#, Fortran, Go (golang), Java, Java Platform, JavaScript/ECMAScript, Pascal, Perl, PHP, PowerShell, PowerShell, Python, Ruby, Scala, Scripting, Software Development, TypeScript, VB.NET, VBScript | 3 Comments »

Oh nice. Feel free to QP. E2003WithConstsInDescendingClassesConsoleProject

Posted by jpluimers on 2017/12/06

Oh nice. Feel free to QP. Fails at least in Delphi XE8.

program E2003WithConstsInDescendingClassesConsoleProject;

{$APPTYPE CONSOLE}

uses
ParentUnit in 'ParentUnit.pas',
ChildUnit in 'ChildUnit.pas';

begin
end.
unit ParentUnit;

interface

type
  TParent = class
  // section can be strict protected, protected, public, published or nothing
  const
    InitialBooleanValue = False;
    InitialIntegerValue = -1;
  end;

implementation

end.
unit ChildUnit;

interface

uses
  ParentUnit;

type
  TChild = class(TParent)
  // section can be strict protected, protected, public, published or nothing
  const
//    Initial and final values need to be different to test the behaviour
    FinalBooleanValue = not InitialBooleanValue;
    FinalIntegerValue = InitialIntegerValue + 1;
//[dcc32 Error] ChildUnit.pas(13): E2003 Undeclared identifier: 'InitialBooleanValue'
//[dcc32 Error] ChildUnit.pas(14): E2003 Undeclared identifier: 'InitialIntegerValue'
//[dcc32 Error] ChildUnit.pas(14): E2026 Constant expression expected
  end;

implementation

end.

[WayBackOh nice. Feel free to QP. unit ParentUnit; interface type TParent = class …

Posted in Delphi, Delphi XE8, Development, Software Development | 3 Comments »

Delphi tip of the day: {$WARN UNSUPPORTED_CONSTRUCT ERROR} to get rid of W1025 when using an undeclared attribute

Posted by jpluimers on 2017/12/04

Delphi tip of the day:

{$WARN UNSUPPORTED_CONSTRUCT ERROR}

It will throw a compiler error when you use an attribute that isn’t defined as the above [WayBackturns a warning into an error as normally [WayBackUNSUPPORTED_CONSTRUCT is only a warning.

Which means that this code now fails:

type
  TmyClass = class
    [djhgfskdhgks]
    procedure One;
  end;

Thanks [WayBack] +Agustin Ortu for posting this tip!

I wish I had known this when I found the G+ post leading to On turning “W1025 Unsupported language feature: ‘customattribute’” into a compiler error.

–jeroen

via:

related:

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

Getting rid of [dcc32 Warning] W1029 Duplicate constructor ‘ClassName.ConstructorName’ with identical parameters will be inacessible from C++

Posted by jpluimers on 2017/11/30

Note that the below solution works for any project raising the W1029 warning (not just from projects using Delphi Mocks) like

[dcc32 Warning] W1029 Duplicate constructor 'ClassName.ConstructorName' with identical parameters will be inacessible from C++

From my original text at [WayBackGet rid of W1029 warning in Delphi compile mode · Issue #106 · VSoftTechnologies/Delphi-Mocks · GitHub:

By default the compiler will emit warnings like these for projects when using either of the Delphi.Mocks.Behavior or Delphi.Mocks.Expectation directly or indirectly:

[dcc32 Warning] W1029 Duplicate constructor 'TExpectation.CreateOnceWhen' with identical parameters will be inacessible from C++

They’re harmless as DUnitX doesn’t support C++. This particular warning type cannot be disabled on the unit or source line level which means you have to disable it on the project level by either:

  1. adding {$WARN DUPLICATE_CTOR_DTOR OFF} anywhere to your .dpr project file
  2. modifying the the Project Options for your project (easiest is in the All configurations - All platforms target):
    1. follow the path Delphi Compiler, Hints and Warnings in the treeview on the left
    2. expand the Output warnings node in the listview on the right
    3. set Duplicate constructor/destructor with identical parameters will be inacessible from C++ to Error

A screenshot of the second option is below.

Note that the spelling mistake in Duplicate constructor/destructor with identical parameters will be inacessible from C++ is how it is in the IDE, but that as Google search string it will give limited results, so here are some back-ground references:

Screenshot of the Project Options

Read the rest of this entry »

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | Leave a Comment »