Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.28;
Скачать: CL | DM;

Вниз

События мыши для потомка TPanel   Найти похожие ветки 

 
Nicke   (2002-01-27 05:42) [0]

Hi, All!

Проблема в следующем:
Создаю потомок TPanel для перетаскивания по форме в run-time:

type
TMovePanel = class(TPanel)

private
FMoveable : Boolean;
procedure WMNCHitTest(var M : TWMNCHitTest);
message WM_NCHitTest;
published
// можно перемещать или нет
property Moveable:Boolean read FMoveable write FMoveable;
end;

var
Form1: TForm1;
Panel : TMovePanel;

.....

procedure TMovePanel.WMNCHitTest(var M : TWMNCHitTest);
begin
inherited;
if (not (csDesigning in ComponentState)) and FMoveable then
if M.Result = htClient then
M.Result:=htCaption;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Panel := TMovePanel.Create(self);
Panel.Parent := Form1;
Panel.Left := 20;
Panel.Top := 20;
Panel.Height := 50;
Panel.Width := 50;
Panel.Moveable := true;
Panel.Visible := true;
end;

Как теперь заставить приложение реагировать на события мыши(MouseDown, OnClick
и т.д.) на этой панели?


 
LLL   (2002-01-27 13:21) [1]

Был как то пример перетаскивания
панели используя SC_MOVE. К сожалению,
поиск по форуму ничего не дал.
Наверно уже удалили.
Может кто напомнит?


 
LLL   (2002-01-27 13:36) [2]

Так, разобрался!
Следует применять
SC_DragMove = $F012;
ReleaseCapture;
Panel1.Perform(WM_SYSCOMMAND,SC_DragMove,0);


 
Dimaond Cat ©   (2002-01-29 00:17) [3]

Смотря что ты имееш в виду, но в принципе все сообщения проходят через application соответственно подмена application.onmessage может дать желаемый результат если нужен пример пиши.


 
Satrap ©   (2002-01-29 16:46) [4]

Если я Вас правильно понял, Вы делаете новый компонент только чтобы таскать его мышью.
Не проще ли будет экземпляру TPanel установить DragKind:=dkDock и DragMode:=dmAutomatic?



Страницы: 1 вся ветка

Текущий архив: 2002.03.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
1-90948
HELP!!!!!!!!!!!!!!!
2002-03-14 16:23
2002.03.28
!!!!!!!!!!!!!!!!!!


14-91062
McSimm
2002-02-14 10:30
2002.03.28
О правиле имен :)


1-90997
Brand
2002-03-13 14:45
2002.03.28
Delphi6 and Rxlib


14-91067
J_S (A)
2002-02-15 15:05
2002.03.28
ЭЛЕМЕНТ: 115. НАЗВАНИЕ: Женщина. СИМВОЛ: Fm


3-90776
Sergant
2002-03-02 11:51
2002.03.28
Как отменить удаление записи из БД?