Floating toolbar (Views: 29)
Problem/Question/Abstract: Floating toolbar Answer: All you have to do is handle Windows' wm_NCHitTest message. (Compare to the tip how to drag a window without a caption bar. It's the same technique.) unit Dragmain; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.WMNCHitTest(var M: TWMNCHitTest); begin inherited; { call the inherited message handler } if M.Result = htClient then { is the click in the client area? } M.Result := htCaption; { if so, make Windows think it's } { on the caption bar. } end; procedure TForm1.Button1Click(Sender: TObject); begin Close; end; end. |