Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 не срабатывает :(


Наверх

Титульная страница Поиск, карта сайта Написать письмо