Необходимо его таскать во время работы программы.
Сейчас делаю так:
1. В перекрытом MouseDown
- Код: Выделить всё
const
SC_DRAGMOVE: Longint = $F012;
var
MouseButtonsSwap: Boolean;
begin
inherited;
MouseButtonsSwap := GetSystemMetrics(SM_SWAPBUTTON) > 0;
FMoving := (((Button = mbLeft) and not MouseButtonsSwap) or
((Button = mbRight) and MouseButtonsSwap)) and
(Y <= Canvas.TextHeight(Caption) + 4 * BevelWidth);
if FMoving then
begin
ReleaseCapture;
SendMessage(Handle, WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;
end;
Это работает под win.
1. Как узнать для Linux настройки мыши (если для левши).
2. Чем заменить ReleaseCapture.
3. Чем заменить SendMessage(Handle, WM_SYSCOMMAND, SC_DRAGMOVE, 0).
4. Может быть есть другой способ перетаскивания (изменять руками left, top не предлагать).
На днях буду раскуривать исходника Lazarus. Как что найду - отпишусь.