Главная страница
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
3-90762
af
2002-03-01 18:04
2002.03.28
Что за ошибка такая и как устанить =Blob already open =?


1-90978
Sam3D
2002-03-13 14:37
2002.03.28
Отладка в условиях нехватки ресурсов


1-90935
AlexMey
2002-03-14 11:57
2002.03.28
Есть ли в Delphi возможность работы с регулярными выражениями?


1-90981
DSR
2002-03-15 10:01
2002.03.28
Как изменить свойство компонента если известен только его тип...


1-90854
SlavaS
2002-03-16 21:35
2002.03.28
Неудаётся найти файл *.bpl