In Delphi programming, sometimes you have to move without a title form. The following is a method of moving several to move the title form. Method 1: Move the form by responding to the "WM_NCHITTEST" message. Windows sends a "WM_NCHITTEST" message to determine if the mouse operation occurs on the form of the form, or on the special area of the border (non-client). If Windows found that the user clicks the form header, the system will move the form, click the Form Border, the system will start changing the form size. Routine follows: private {Private declarations} Procedure MoveForm (var M: TWMNCHITTEST);.... Message WM_NCHITTEST; // declare a custom event to intercept "WM_NCHITTEST" message public {$ R * .DFM} Procedure TForm1.MoveForm (var M: twmnchittest); begin inherited; // Inherit, the form can continue to process the subsequent event if (m.Result = htclient) // If occurred in the client area and ((GetKeyState (VK_Control) <0) // detection "Ctrl" button presses the m.Result: = htcaption; // Change the value of the ".Result" field END; method 2: You can adjust the application to different messages by creating a handler for Application.OnMessage to get a Windows message. The response or a service that cannot be normally recognized. After the message is pressed by the mouse of the Form Customer, send a message pressed in the title bar. The routines are as follows:.. Procedure formcreate (Sender: Tobject) ; private {Private declarations} procedure AppMessage (var Msg: TMsg; var Handled: Boolean);.. {$ R * .DFM} procedure TForm1.FormCreate (Sender: TObject); begin Application.OnMessage: = AppMessage; // capture Message: Associate the program's receipt of the message event with the message filtering process; Procedure TFORM1.AppMessage (var Msg: TMSG; var handled: boolean); begin if (msg.Message = WM_LBUTTONDOWN) and // If the left mouse button Next, DEFWINDOWPROC (Handle, WM_NCHITTEST, 0, GetMessagePOS) = htclient) and // determines whether the cursor is in the client area ((GetKeyState (vk_control) <0) // Detects the "Ctrl" button to press THEN BEGIN SendMessage (HTCAPTION, GetMessagePos); // Send the message to the mouse in the title bar Handled: = true; END; END; method 3: Send a "WM_SYSCOMMAND" message directly to the form, you need to use the "SC_DRAGMOVE" flag that is not archived, is defined as follows: const sc_dragmove: longint = $ f012; we can only send the message to the TwinControl derived component, and can only respond to the mouse Events because the system captures mobs at this time (when the mouse button is released, the drag operation is meaningless).