Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
6-91030
av
2002-01-13 12:13
2002.03.28
Вопросы по ClientSocket & ServerSocket


3-90758
Ptr
2002-02-27 14:52
2002.03.28
MasterSource... Кто подскажет в чем проблема?


1-90979
Demon ltd
2002-03-14 23:09
2002.03.28
Разница между датами


3-90729
IronHawk
2002-02-27 11:35
2002.03.28
Приветствую Мастеров ! Вопрос про связь и передачу данных (DBComboBox, DBText, DBGrid, DataSource, Table), что нетак делаеться ?


1-90913
Merle Corey
2002-03-18 15:15
2002.03.28
Создание компонента




   Наверх