Author: Lou Adler How to use PostMessage to post a string instead of an integer Answer: 1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 Dialogs, StdCtrls; 8 9 type 10 TForm1 = class(TForm) 11 Button1: TButton; 12 procedure Button1Click(Sender: TObject); 13 private 14 procedure wmUser(var Msg: TMessage); message WM_USER; 15 public 16 end; 17 18 var 19 Form1: TForm1; 20 21 implementation 22 23 {$R *.dfm} 24 25 procedure TForm1.Button1Click(Sender: TObject); 26 var 27 lP: LPARAM; 28 begin 29 lP := 0; {VERY important} 30 string(lP) := Caption + ' Whatever'; 31 PostMessage(Handle, WM_USER, 0, lP); 32 end; 33 34 procedure TForm1.wmUser(var Msg: TMessage); 35 begin 36 Caption := string(Msg.LParam); 37 string(Msg.LParam) := ''; {VERY important} 38 end; 39 40 end.