Текущий архив: 2007.01.28;
Скачать: CL | DM;
Вниз
Как перетаскивать форму не за заголовок Найти похожие ветки
← →
DVK (2006-05-02 15:54) [0]Если на форме стоит Label с выравниванием caClient. То есть, можно ли сделать так, чтобы все события, которые обрабатываются Label"ом (кроме перерисовки), обрабатывала форма?
Попытался сделать на KOL то, что на VCL делается строчками:
procedure TForm1.WMNCHitTest (var M:TWMNCHitTest);
begin
inherited;
if M.Result = htClient then
M.Result := htCaption;
end;
Получилось примерно вот что:
function TForm1.KOLForm1Message(var Msg: tagMSG; var Rslt: Integer): Boolean;
begin
Result := FALSE;
CASE Msg.message OF
WM_NCHITTEST:
begin
rslt:=form.CallDefWndProc(msg);
if Rslt = htClient then
Rslt := htCaption;
Result:=true;
end;
end;
end;
Но вот не получается - за Label форма не перемещается.
← →
ECM © (2006-05-02 17:16) [1]Просто добавьте еще обработчик для Label
function TForm1.Label1Message(var Msg: tagMSG; var Rslt: Integer): Boolean;
begin
Result := FALSE;
if (Msg.message = WM_NCHITTEST) then begin
Rslt := HTTRANSPARENT;
Result := TRUE;
end;
end;
Удачи :)
← →
DVK (2006-05-03 09:27) [2]Спасибо, всё заработало.
Страницы: 1 вся ветка
Текущий архив: 2007.01.28;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.051 c