![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DragDrop
ORMADA © (2005-06-07 07:29:00)Доб день!
Столкнулся с такой проблемой если у компонента установлено свойство 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 09:18:00) [1]2 novice_man
пример посмотри что я написал [1]
я хочу переносить левой кнопкой что и написано в примере
но одновременно я хочу и ловить клик когда кликнули по кнопке
ORMADA (2005-06-07 09:16:00) [2]2 novice_man посмотри [2]
//сейчас исчо поймал 1 замечательную особенность
//когда драг в автомате OnClick не срабатывает :(
[1]
//при мануале при нажатии и удержании клавиши мыши срабатывает //MouseUp сразу же
novice_man (2005-06-07 09:14:00) [3]Например для Memo:
procedure TForm1.Memo1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Shift = [ssRight] then Memo1.BeginDrag(true);
end;
Только если при нажатой правой кноки мыши начать движение.
novice_man (2005-06-07 09:10:00) [4]Читаем 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.
Все :)
ORMADA (2005-06-07 09:06:00) [5]2 Digitman
а по другому как можно сделать ?
как сделать чтоб можно было нормально таскать в ручном режиме (DragMode=manual) и в тоже время использовать OnClick для каких то действий и чтоб он не возникал во время начала переноса .......?
Digitman (2005-06-07 08:54:00) [6]
> ORMADA © (07.06.05 08:40) [3]
можно и так
ORMADA (2005-06-07 08:40:00) [7]2 Digitman т.е. завести какую нить логическую переменную которую при OnMouseDown выставлять в True и потом проверять её в OnMouseMove ?
и уж потом только начинать драг ?
Digitman (2005-06-07 08:34:00) [8]с какого перепугу grag-операция у тебя начинается сразу же при клике мыши ?
она должна начинаться при первом же OnMouseMove, если непосредственноперед ним было зафиксировано OnMouseDown
ORMADA (2005-06-07 07:40:00) [9]сейчас исчо поймал 1 замечательную особенность
когда драг в автомате OnClick не срабатывает :(