Convert Delphi VCL window handle (HWND) To String

Simple example of converting a window handle (HWND data type) to a string in a Delphi VCL program

cardinal(vMyWindowHandle).ToString

This uses the WinApi.Windows unit

Example

Show the window handle of the foreground window

procedure TForm1.Button1Click(Sender: TObject);
var
   vMyWindowHandle : HWND;
begin
   vMyWindowHandle := GetForegroundWindow();  // get top most window

   ShowMessage ('Window handle is '
               + cardinal(vMyWindowHandle).ToString
               );
end;

delphi_window_handle_to_string

Use your own own conversion function

The conversion of a handle to cardinal number type is not guarenteed to work on all future versions of Windows.  For a “best practise” approach you should wrap the conversion code into a function so you can change the conversion code if needed,

function HandleToString (aHandle : HWND) : string;
begin
  result := cardinal(aHandle).ToString;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 vMyWindowHandle : cardinal; // uses WinApi.Windows
begin
 vMyWindowHandle := GetForegroundWindow();
 ShowMessage ('The window handle is ' + HandleToString(vMyWindowHandle));
end;

Tested Delphi Versions

Tested ok on Delphi 10.1 on Windows 7 32 bit and Windows 10 64 bit.
It should work with many other version of Delphi and Windows

Im sure this would not work prior to Delphi 2005 as it uses a record helper that was introduced in that version of Delphi.

If you can verify any other versions of Delphi / Windows please post a comment below

Other Conversion Methods

Try IntToStr and Format

+1 this post

Please help get this blog listed on DelphiFeeds by +1 voting here and also vote on BeginEnd.  Thank you.

About Me

scott_hollows_201611

  • Oracle & Delphi software developer based in Perth, Western Australia
  • Australian Delphi User Group – President and WA meeting organizer
  • Australian Oracle User Group – WA State Committee Member
  • Available to do remote presentations to user groups on Delphi and Oracle topics
blog email linkedinlogo

 

Author: Scott Hollows

Enterprise software developer based in Perth, Western Australia. Focused on Oracle, Delphi, Data Warehouse design and ETL, Data Architect, Business Intelligence, Oracle performance tuning. President of the Australian Delphi User Group (ADUG) LinkedIn www.linkedin.com/in/scotthollows

3 thoughts on “Convert Delphi VCL window handle (HWND) To String”

  1. Type helpers for cardinals were added in XE4, so cardinal.ToString will work in XE4 and later versions.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s