Mega Code Archive

 
Categories / Delphi / Ide Indy
 

How to move window controls at runtime

Title: How to move window controls at runtime type TForm1 = class(TForm) {...} procedure MoveControl(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private-Declarations } public { Public-Declarations } end; end; // In the implementation Section: procedure TForm1.MoveControl(Sender:TObject; Button:TMouseButton; Shift:TShiftState; X,Y:Integer); var TempPanel: TPanel; Control: TControl; begin // Releases the mouse capture from a window ReleaseCapture; // If the component is a TWinControl, move it directly if Sender is TWinControl then TWinControl(Sender).Perform(WM_SYSCOMMAND,$F012,0) else try Control := TControl(Sender); TempPanel := TPanel.Create(Self); with TempPanel do begin //Replace the component with TempPanel Caption := ??; BevelOuter := bvNone; SetBounds(Control.Left, Control.Top, Control.Width, Control.Height); Parent := Control.Parent; //Put our control in TempPanel Control.Parent := TempPanel; //Move TempPanel with control inside it Perform(WM_SYSCOMMAND, $F012, 0); //Put the component where the panel was dropped Control.Parent := Parent; Control.Left := Left; Control.Top := Top; end; finally TempPanel.Free; end; end;