WM_SYSCOMMAND 訊息的 LParam 參數是滑鼠位置, 低位是 X, 高位是 Y.
下面三段程式是一樣的只是使用不同類型的訊息參數, 用 TWMSysCommand 更方便, 用 TMessage 更正統.
程式一:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) protected procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMSysCommand(var Message: TWMSysCommand);begin Text := Format('%d,%d', [Message.XPos, Message.YPos]); inherited;end;end.
程式二:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) protected procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND; end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMSysCommand(var Message: TMessage);begin Text := Format('%d,%d', [LoWord(Message.LParam), HiWord(Message.LParam)]); inherited;end;end.
程式三:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) protected procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND; end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMSysCommand(var Message: TMessage);begin Text := Format('%d,%d', [Message.LParamLo, Message.LParamHi]); inherited;end;end.