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

Вниз

DragDrop   Найти похожие ветки 

 
ORMADA ©   (2005-06-07 07:29) [0]

Доб день!
Столкнулся с такой проблемой если у компонента установлено свойство DragMode в мануал то при нажатии и удержании клавиши мыши срабатывает MouseUp сразу же
я делал так

procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
 if Button = mbLeft then
   TButton(Sender).BeginDrag(True);
----------------------
procedure TForm1.Button2MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 caption := "MouseUp";

но если ставишь драгмоде в автомат этого события не происходит, почему ?
или как можно сделать чтоб моусАп не возникал при мануальнорм драг моде ?


 
ORMADA ©   (2005-06-07 07:40) [1]

сейчас исчо поймал 1 замечательную особенность
когда драг в автомате OnClick не срабатывает :(


 
Digitman ©   (2005-06-07 08:34) [2]

с какого перепугу grag-операция у тебя начинается сразу же при клике мыши ?

она должна начинаться при первом же OnMouseMove, если непосредственно перед ним было зафиксировано OnMouseDown


 
ORMADA ©   (2005-06-07 08:40) [3]

2 Digitman т.е. завести какую нить логическую переменную которую при OnMouseDown выставлять в True и потом проверять её в OnMouseMove ?
и уж потом только начинать драг ?


 
Digitman ©   (2005-06-07 08:54) [4]


> ORMADA ©   (07.06.05 08:40) [3]


можно и так


 
ORMADA ©   (2005-06-07 09:06) [5]

2 Digitman
а по другому как можно сделать ?
как сделать чтоб можно было нормально таскать в ручном режиме (DragMode=manual) и в тоже время использовать OnClick для каких то действий и чтоб он не возникал во время начала переноса .......?


 
novice_man ©   (2005-06-07 09:10) [6]

Читаем HELP: (ничего что по английски?)

Set its DragMode to dmAutomatic. When DragMode is dmAutomatic, dragging (for drag-and-drop or docking, depending on DragKind) is initiated automatically when the user starts dragging the control with the mouse. When DragMode is dmManual, you can still begin a drag-and-dock (or drag-and-drop) operation by calling the BeginDrag method.


Если DragMode установлен как dmAutomatic тогда операция перетаскивания (for drag-and-drop or docking, depending on DragKind) начинается автоматически! Когда DragMode установлен как dmManual вы можете начать перетаскивание (drag-and-dock (or drag-and-drop)) вызвав метод BeginDrag.

Все :)


 
novice_man ©   (2005-06-07 09:14) [7]

Например для Memo:

procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
if Shift = [ssRight] then Memo1.BeginDrag(true);
end;


Только если при нажатой правой кноки мыши начать движение.


 
ORMADA ©   (2005-06-07 09:16) [8]

2 novice_man посмотри [2]
//сейчас исчо поймал 1 замечательную особенность
//когда драг в автомате OnClick не срабатывает :(
[1]
//при мануале при нажатии и удержании клавиши мыши срабатывает //MouseUp сразу же


 
ORMADA ©   (2005-06-07 09:18) [9]

2 novice_man
пример посмотри что я написал [1]
я хочу переносить левой кнопкой что и написано в примере
но одновременно я хочу и ловить клик когда кликнули по кнопке



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

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

Наверх




Память: 0.49 MB
Время: 0.031 c
3-1116844274
ass1
2005-05-23 14:31
2005.06.29
опять isc4.gdb


8-1109731660
dr_ollo
2005-03-02 05:47
2005.06.29
DSPack регулировка яркости и контрастности в тюнере


1-1117711949
Romkaa
2005-06-02 15:32
2005.06.29
Посчитать число е


4-1115677350
ronyn
2005-05-10 02:22
2005.06.29
Как загрузить документ в программу автоматически при открытии док


14-1117216490
sofs
2005-05-27 21:54
2005.06.29
порты