The Wiert Corner – irregular stream of stuff

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

  • Home
  • Wiert.me
  • About the Wiert Corner
  • Privacy Policy
  • Conferences, seminars and other public appearances
  • Posting categories
  • Archives
  • Toolbox
  • Contact form
  • License
  • Subscribe

    • Entries (RSS)
    • Comments (RSS)
  • December 2025
    M T W T F S S
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
    « Nov    
  • Archives

    • December 2025 (40)
    • November 2025 (47)
    • October 2025 (50)
    • September 2025 (49)
    • August 2025 (47)
    • July 2025 (50)
    • June 2025 (47)
    • May 2025 (48)
    • April 2025 (46)
    • March 2025 (44)
    • February 2025 (48)
    • January 2025 (55)
    • December 2024 (48)
    • November 2024 (44)
    • October 2024 (51)
    • September 2024 (46)
    • August 2024 (53)
    • July 2024 (50)
    • June 2024 (36)
    • May 2024 (33)
    • April 2024 (33)
    • March 2024 (36)
    • February 2024 (28)
    • January 2024 (28)
    • December 2023 (27)
    • November 2023 (24)
    • October 2023 (24)
    • September 2023 (29)
    • August 2023 (31)
    • July 2023 (33)
    • June 2023 (26)
    • May 2023 (26)
    • April 2023 (31)
    • March 2023 (26)
    • February 2023 (27)
    • January 2023 (24)
    • December 2022 (33)
    • November 2022 (27)
    • October 2022 (23)
    • September 2022 (25)
    • August 2022 (24)
    • July 2022 (26)
    • June 2022 (26)
    • May 2022 (23)
    • April 2022 (32)
    • March 2022 (69)
    • February 2022 (63)
    • January 2022 (66)
    • December 2021 (75)
    • November 2021 (66)
    • October 2021 (64)
    • September 2021 (67)
    • August 2021 (69)
    • July 2021 (69)
    • June 2021 (69)
    • May 2021 (68)
    • April 2021 (67)
    • March 2021 (72)
    • February 2021 (63)
    • January 2021 (65)
    • December 2020 (70)
    • November 2020 (64)
    • October 2020 (68)
    • September 2020 (67)
    • August 2020 (67)
    • July 2020 (71)
    • June 2020 (68)
    • May 2020 (64)
    • April 2020 (67)
    • March 2020 (70)
    • February 2020 (61)
    • January 2020 (74)
    • December 2019 (70)
    • November 2019 (63)
    • October 2019 (73)
    • September 2019 (68)
    • August 2019 (66)
    • July 2019 (68)
    • June 2019 (68)
    • May 2019 (72)
    • April 2019 (73)
    • March 2019 (64)
    • February 2019 (68)
    • January 2019 (78)
    • December 2018 (87)
    • November 2018 (77)
    • October 2018 (79)
    • September 2018 (77)
    • August 2018 (76)
    • July 2018 (74)
    • June 2018 (63)
    • May 2018 (70)
    • April 2018 (63)
    • March 2018 (72)
    • February 2018 (48)
    • January 2018 (83)
    • December 2017 (67)
    • November 2017 (62)
    • October 2017 (63)
    • September 2017 (52)
    • August 2017 (62)
    • July 2017 (48)
    • June 2017 (57)
    • May 2017 (68)
    • April 2017 (55)
    • March 2017 (59)
    • February 2017 (58)
    • January 2017 (60)
    • December 2016 (59)
    • November 2016 (74)
    • October 2016 (61)
    • September 2016 (87)
    • August 2016 (57)
    • July 2016 (51)
    • June 2016 (49)
    • May 2016 (48)
    • April 2016 (51)
    • March 2016 (49)
    • February 2016 (50)
    • January 2016 (48)
    • December 2015 (59)
    • November 2015 (57)
    • October 2015 (37)
    • September 2015 (31)
    • August 2015 (41)
    • July 2015 (31)
    • June 2015 (37)
    • May 2015 (30)
    • April 2015 (32)
    • March 2015 (37)
    • February 2015 (52)
    • January 2015 (50)
    • December 2014 (43)
    • November 2014 (39)
    • October 2014 (40)
    • September 2014 (41)
    • August 2014 (58)
    • July 2014 (32)
    • June 2014 (23)
    • May 2014 (38)
    • April 2014 (105)
    • March 2014 (145)
    • February 2014 (81)
    • January 2014 (56)
    • December 2013 (58)
    • November 2013 (32)
    • October 2013 (26)
    • September 2013 (26)
    • August 2013 (54)
    • July 2013 (47)
    • June 2013 (41)
    • May 2013 (33)
    • April 2013 (41)
    • March 2013 (50)
    • February 2013 (47)
    • January 2013 (55)
    • December 2012 (32)
    • November 2012 (23)
    • October 2012 (37)
    • September 2012 (52)
    • August 2012 (46)
    • July 2012 (40)
    • June 2012 (30)
    • May 2012 (27)
    • April 2012 (30)
    • March 2012 (29)
    • February 2012 (32)
    • January 2012 (25)
    • December 2011 (38)
    • November 2011 (28)
    • October 2011 (46)
    • September 2011 (63)
    • August 2011 (35)
    • July 2011 (24)
    • June 2011 (24)
    • May 2011 (24)
    • April 2011 (29)
    • March 2011 (50)
    • February 2011 (48)
    • January 2011 (18)
    • December 2010 (5)
    • November 2010 (18)
    • October 2010 (22)
    • September 2010 (29)
    • August 2010 (24)
    • July 2010 (27)
    • June 2010 (29)
    • May 2010 (25)
    • April 2010 (23)
    • March 2010 (10)
    • February 2010 (6)
    • January 2010 (16)
    • December 2009 (12)
    • November 2009 (3)
    • October 2009 (11)
    • September 2009 (21)
    • August 2009 (11)
    • July 2009 (11)
    • June 2009 (5)
    • May 2009 (12)
    • April 2009 (20)
  • *nix *nix-tools .NET About Apple C# Conferences Conference Topics Delphi Development Event Google Hardware History Internet LifeHacker Linux Mac Mac OS X / OS X / MacOS Personal Power User Scripting Security SocialMedia Software Development Source Code Management VMware Web Development Windows Windows 7
  • Recent Comments

    Lars Fosdal's avatarLars Fosdal on Security alarm provider Woonve…
    Thomas Mueller's avatarThomas Mueller on Question got closed in May 202…
    Thaddy de Koning's avatarThaddy de Koning on Formulier voor bewindvoerders…
    Thaddy de Koning's avatarThaddy de Koning on Formulier voor bewindvoerders…
    Thaddy de Koning's avatarThaddy de Koning on Formulier voor bewindvoerders…
  • Recent Posts

    • “Mozart or Bach?” – YouTube: The very first polyphonic music on a computer – Peter Samson programmed it on a PDP-1
    • Micro Men – 720p (2009) – YouTube
    • Gamifying Security – Security Boulevard
    • Chrome/chromium gripe: cumbersome screenshots; Firefox much better (but management hates employees having cancer)
    • Dorstlust | Drink wat Anders – via @ngrynerds
  • Blog Stats

    • 3,605,807 hits
  • Meta title

    • Create account
    • Log in
    • Entries feed
    • Comments feed
    • WordPress.com
  • Tag Cloud Title

    .NET Framework 1 2 3 4 6 7 8 14 16 18 25 32 android Apple arts aviation batch file bitbucket blogging command-line computer Conferences Delphi delphi 1 delphi 5 design developer documentation education embarcadero flickr gadgets geeks gmail google google search include infosec internet iOS iphone jeroen mac os x Media microsoft surface mobile nick hodges pascal path names pdf photography Privacy Python RaspberryPi research science scott hanselman shorts software sourcecode language sourceforge ssd stack overflow technology TLS transportation Travel twitter vcl vm VMware VMware Fusion wordpress xkcd
  • Top Clicks

    • web.archive.org/web/20241…
    • archive.is/2024.10.04-210…
    • somoit.net/windows/window…
    • brandonchecketts.com/arch…
    • web.archive.org/web/20240…
    • forum.allaboutcircuits.co…
    • youtube.com/watch?v=amXwb…
    • web.archive.org/web/20100…
    • stackoverflow.com/questio…
    • github.com/jpluimers/IPMI…
  • Top Posts

    • When NTFS shrink fails, despite using the default settings from the shrink dialog
    • Historic storage prices: graphs and tables
    • Calls from +18553308653 might be because someone is trying to use your phone number to setup a Microsoft account two factor authentication
    • DELL fans use a different pin-layout than normal fans, so watch out before connecting them!
    • LIDL Radio Controlled Wall Clock IAN 100489 English manual
    • C13/C14 wiring diagram live/neutral/earth
    • Reddit - PSA: Fast way to complete the "Use 10 super effective charged attacks" field research : TheSilphRoad
    • Delphi: [BRCC32 Error] ProjectName.vrc(63): file not found: C:\Users\Public\Documents\RAD Studio\10.0\Styles\SlateClassico.vsf
    • Some Delphi versions miss some of the Indy files
    • Windows event log querying from the command line: wevtutil (with XPath query parameters and XML output)
  • My badges

    Mastodon
  • Twitter Updates

    Tweets by jpluimers
  • My Flickr Stream

    20140508-Delphi-2007--Project-Options--Cannot-Edit-Application-Title-HelpFile-Icon-Theming20140430-Fiddler-Filter-Actions-Button-Run-Filterset-now20140424-VMware-Fusion-6.0.3.-no-reclaimable
    More Photos
  • Pages

    • About the Wiert Corner
      • bio
      • Music I like
    • Archives
    • Conferences, seminars and other public appearances
    • Contact form
    • License
    • Posting categories
    • Privacy Policy
    • Toolbox
      • DNS
      • Links
      • spring4d
      • Status
    • Wiert.me
  • 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 XE’ Category

« Previous Entries
Next Entries »

Do not use non-ASCII characters as identifiers – not all your tools support them well enough

Posted by jpluimers on 2018/04/05

For a very long time I’ve discouraged people from using non-ASCII characters in identifiers. It still holds.

In the past, transliterations messed things up. Even with increased support for Unicode, tools still screw non-ASCII characters up.

Delphi is not alone in this (the most important one is the DFM view as text support), see this report: [RSP-16767] Viewing a form as text fails with non ascii control or event names – Embarcadero Technologies (you need an account for this, but the report is visible for anyone):

Viewing a form as text fails with non ascii control or event names Comment

Steps:

  1. create a new VCL forms application
  2. drop a label onto the form
  3. change the name of that label to lblÜberfall (note the U-umlaut)
  4. switch to view as text
  • exp: DFM content shown as text
  • act: first line is shown incorrectly (see screenhsot)

–jeroen

Source: [RSP-16767] Viewing a form as text fails with non ascii control or event names – Embarcadero Technologies

via: [WayBack] Code of the day – – Thomas Mueller (dummzeuch) – Google+:

function TNameGenerator.StrasseToStrasse(const _Strasse: string): string;
begin
Result := _Strasse;
end;

…

Strasse := StrasseToStrasse(_Strasse);

Read the rest of this entry »

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

Posted in ASCII, Conference Topics, Conferences, Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Encoding, Event, Mojibake, Software Development | Leave a Comment »

Wizard to change Delphi Icon so it used the Projects’ Icon

Posted by jpluimers on 2018/04/05

Thomas Mueller (dummzeuch) – Google+ wrote this: [WayBack] Just an inspiration from attila kovacs (too many guys with this name on G+ to…:

A Delphi Wizard that adds a menu item so the Delphi Icon will change into the icon of the currently loaded project.

Can be useful if you have many Delphi instances open.

Source at [WayBack] http://pisil.de/bds_icon.txt

via: [WayBack] Is anybody able and have time to create an extension … change the icon with Application.Icon… – Attila Kovacs – Google+

–jeroen

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

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

Delphi: playing Chimes.wav as an external file or embedded WAVE resource in Delphi XE5.

Posted by jpluimers on 2018/01/10

As a by-effect, this article seems to one of the few that shows where Delphi uses the .dres file extension introduced around Delphi XE.

Recently I had to play some notification sounds in a Windows Delphi application where the application deployment should be as easy as possible: preferable copying the EXE around.

Playing a sound file seems easy, especially if it is a [WayBack] WAV file: just use the [WayBack] PlaySound or the (older) [WayBack] sndPlaySound API functions.

But if you start searching on the internet, you see lots of curious implementations for playing WAV resources through sndPlaySound.

The actual implementation is really really easy though, just make sure you follow the steps right and nothing can go wrong.

[WayBack] The full source code is on my BeSharp.net repository, here is how to to it step by step:

The steps depend on the MMSystem unit, so most of the code translates back to [WayBack] Turbo Pascal for Windows (yes, the 16-bit Pascal days when the MMSystem unit was introduced) with the exception of the SND_SENTRY flag.

The thing that more recent Delphi versions made a lot easier is embedding WAV files as WAVE resources, more on that further on. Read the rest of this entry »

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

Posted in Borland Pascal, Delphi, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Pascal, Software Development, Turbo Pascal | Leave a Comment »

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 [WayBack] Get 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:

  • Delphi 2007: Duplicate %s ‘%s’ with identical parameters will be inacessible from C++ (W1029)
  • Delphi 2009: W1029: Duplicate %s ‘%s’ with identical parameters will be inacessible from C++ (Delphi)
  • Delphi 2010 and up: W1029 Duplicate %s ‘%s’ with identical parameters will be inacessible from C++ (Delphi)
  • Explanation about W1029: Useful reference about disabling specific compiler warnings
  • Delphi XE2’s hidden hints and warnings options
  • On warning W1029: Duplicate constructor warning in Delphi XE2

Screenshot of the Project Options

Read the rest of this entry »

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

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 »

delphi – VCL events with anonymous methods – what do you think about this implementation? – Stack Overflow

Posted by jpluimers on 2017/10/19

A long time ago, Pablo Vizcay a.k.a. [WayBack] pragmatic_programmer wrote some cool code at [WayBack] delphi – VCL events with anonymous methods – what do you think about this implementation? – Stack Overflow.

I still think it’s a very neat solution to bind method references to events.

type
  TNotifyEventDispatcher = class(TComponent)
  protected
    FClosure: TProc<TObject>;

    procedure OnNotifyEvent(Sender: TObject);
  public
    class function Create(Owner: TComponent; Closure: TProc<TObject>): TNotifyEvent; overload;

    function Attach(Closure: TProc<TObject>): TNotifyEvent;
  end;

implementation

class function TNotifyEventDispatcher.Create(Owner: TComponent; Closure: TProc<TObject>): TNotifyEvent;
begin
  Result := TNotifyEventDispatcher.Create(Owner).Attach(Closure)
end;

function TNotifyEventDispatcher.Attach(Closure: TProc<TObject>): TNotifyEvent;
begin
  FClosure := Closure;
  Result := Self.OnNotifyEvent
end;

procedure TNotifyEventDispatcher.OnNotifyEvent(Sender: TObject);
begin
  if Assigned(FClosure) then
    FClosure(Sender)
end;

end.

And this is how it’s used for example:

procedure TForm1.FormCreate(Sender: TObject);
begin    
  Button1.OnClick := TNotifyEventDispatcher.Create(Self,
    procedure (Sender: TObject)
    begin
      Self.Caption := 'DONE!'
    end)
end;

–jeroen

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

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

ThreadBarrier/ThreadBarrier.pas at master · lordcrc/ThreadBarrier

Posted by jpluimers on 2017/10/12

I mentioned Asbjørn Heid on wiert.me before. While prepping for the Deadlock Empire workshop at EKON20, I needed a Delphi equivalent for the .NET [Way: Barrier Class (System.Threading)

The game uses that in level deadlockempire.github.io/#H4-Barrier [WayBack].

Edwin van der Kraan found the ThreadBarrier/ThreadBarrier.pas at master · lordcrc/ThreadBarrier implementation via [WayBack] Is there a way to create memory barriers in Delphi? Something like .NET’s System.Threading.Barrier class, java.util.concurrent.CyclicBarrier… – Horácio Filho – Google+

It’s from Asbjoørn who is known as lordcrc on GitHub. Cool stuff!

So yes, there is a Delphi version of If you thought you could do multi-threading, then play “The Deadlock Empire” games. You can find it at https://deadlockempire.4delphi.com/ There are two deadlockempire implementations there:

  • C# at ./csharp usually in sync with https://github.com/jpluimers/deadlockempire.github.io/tree/devel
  • Delphi at ./delphi usually in sync with https://github.com/jpluimers/deadlockempire.github.io/tree/feature/Delphi-language-and-Delphi-RTL

The workshop was great fun!

This is about a web game focussing on the concurrency issues in multi-threading environments. By the conference there will be a Delphi version of it. At the workshop we will play each round interactively: all attendees play the round followed by a short discussion. This is about collective learning, so the speakers will probably learn… Read More

Source: [Archive.is] If you thought you could do multi-threading, then play “The Deadlock Empire” games – Entwickler Konferenz

–jeroen

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

Posted in .NET, C#, Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 1 Comment »

Looking for more examples of Unicode/Ansi oddities in Delphi 2009+

Posted by jpluimers on 2017/09/25

At the end of April 2014, Roman Yankovsky started a nice [Wayback] discussion on Google+ trying to get upvotes for [Wayback] QualityCentral Report #:  124402: Compiler bug when comparing chars.

His report basically comes down to that when using Ansi character literals like #255, the compiler treats them as single-byte encoded characters in the current code page of your Windows context, translates them to Unicode, then processes them.

The QC report has been dismissed as “Test Case Error” (within 15 minutes of stating “need more info”) by one of the compiler engineers, directing to the [Wayback] UsingCharacterLiterals section of Delphi in a Unicode World Part III: Unicodifying Your Code where – heaven forbid – they suggest to replace #128 with the Euro-Sign literal.

I disagree, as the issue happens without any hint or warning whatsoever, and causes code that compiles fine in Delphi <= 2007 to fail in subtle ways on Delphi >= 2009.

The compiler should issue a hint or warning when you potentially can screw up. It doesn’t. Not here.

Quite a few knowledgeable Delphi people got involved in the discussion:

Read the rest of this entry »

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

Posted in Ansi, ASCII, Conference Topics, Conferences, CP437/OEM 437/PC-8, Delphi, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Development, Encoding, Event, ISO-8859, Missed Schedule, QC, SocialMedia, Software Development, Unicode, UTF-8, Windows-1252, WordPress | Leave a Comment »

Delphi TGridPanel – how to get all SizeStyle=ssPercent cells to get the same auto-calculated Value – via StackOverflow

Posted by jpluimers on 2017/08/31

If you want to set all columns to the same value, select all columns in the structure view and then (assuming SizeStyle [WayBack] is already set to ssPercent [WayBack]) set the Value [WayBack] to 0. This will trigger some automatism that makes all of the columns sized equal.

Great answer by Uwe Raabe [WayBack]

Source: Delphi How to use TGridPanel – Stack Overflow [WayBack]

–jeroen

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), 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 »

If you ever wonder why you get no (or incomplete) RTTI from a control that you…

Posted by jpluimers on 2017/08/08

Thanks Stefan Glienke for posting this a while ago:

If you ever wonder why you get no (or incomplete) RTTI from a control that you inherited from a DevExpress one – then look into cxVer.inc where it has the following lines:

{$IFNDEF CXTEST}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}
{$ENDIF}

+Martin Wienold was wondering (and so was I at first) why he could not properly resolve a form from the DI container that inherited from TdxRibbonForm despite writing a public method with [Inject] attribute on it but it was never called.

Warning: If you are using DevExpress or any other source code that does this (changing the $RTTI directive) and build these sources together with your application (in contrast to using precompiled dcus or even packages) on a version <XE6 then you might suffer from this issue: [WayBack] #79943: {$ RTTI} flag scope which causes RTTI to disappear even from units that did not have the $RTTI in them.

Source: If you ever wonder why you get no (or incomplete) RTTI from a control that you…

 –jeroen

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

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

MarcoDelphiBooks on GitHub

Posted by jpluimers on 2017/07/04

Just in case I need any of them: now in chronological order.

MarcoDelphiBooks – http://www.marcocantu.com

  • ObjectPascalHandbook
  • MasteringDelphi3
  • MasteringDelphi4
  • MasteringDelphi5
  • MasteringDelphi6 
  • MasteringDelphi7
  • MasteringDelphi2005
  • Delphi2007Handbook
  • Delphi2009Handbook
  • Delphi2010Handbook
  • DelphiXEHandbook

Source: MarcoDelphiBooks

–jeroen

Rate this:

Share this:

  • Click to share on Mastodon (Opens in new window) Mastodon
  • Click to share on Bluesky (Opens in new window) Bluesky
  • Share on Tumblr
  • Click to share on Reddit (Opens in new window) Reddit
  • Pocket
  • Click to share on Threads (Opens in new window) Threads
  • Tweet
  • Click to share on Telegram (Opens in new window) Telegram
  • Click to share on Nextdoor (Opens in new window) Nextdoor
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
Like Loading...

Posted in Delphi, Delphi 2005, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi XE, Development, Software Development | Leave a Comment »

« Previous Entries
Next Entries »
 
Blog at WordPress.com.
  • Subscribe Subscribed
    • The Wiert Corner - irregular stream of stuff
    • Join 725 other subscribers
    • Already have a WordPress.com account? Log in now.
    • The Wiert Corner - irregular stream of stuff
    • Subscribe Subscribed
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar
  • Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
    To find out more, including how to control cookies, see here: Cookie Policy
  • %d