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

Вниз

Удержание кнопки мыши и кнопки...   Найти похожие ветки 

 
MTsv DN   (2005-11-21 14:17) [0]

Надо отследить удержание кнопки мыши и кнопок "Вверх"/"Вниз". Например, при пролистывании ListBox"a... Как узнать, когда просто нажата кнопка, а когда удерживается...

С Уважением MTsv DN


 
SergGG ©   (2005-11-21 15:15) [1]

Я тут налабал:


   ListBox1: TListBox;

type TListB  = class(TListBox)
 private
 procedure ClickUpDown(var Msg:TWMScroll);message WM_VSCROLL;
end;

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
  LBox:=TListB.Create(Form1);
  LBox.Parent:=Form1;
  LBox.Width:=100;
  LBox.Height:=100;
  for i:=1 to 10 do
 LBox.Items.Add(IntToStr(i));
end;

procedure TListB.ClickUpDown;
begin
 case  Msg.ScrollCode of
 0: Form1.ListBox1.Items.Add("Up") ;
 1: Form1.ListBox1.Items.Add("Down") ;
 end;

end;



 
MTsv DN   (2005-11-22 08:57) [2]

Привет...
Отслеживание WM_VSCROLL - это понятно... Но Вы не правильно меня поняли, видимо не стоило упоминать о ListBox"e.
Мне нужно разделить работу, при нажатии на кнопку мыши... В первом случае: обычный клик (WM_LBUTTONDOWN + WM_LBUTTONUP) -> Процедура 1, во втором случае: нажатие + удержание (WM_LBUTTONDOWN + ???????) -> Процедура 2...

С Уважением MTsv DN


 
Leonid Troyanovsky ©   (2005-11-22 12:39) [3]


> MTsv DN   (22.11.05 08:57) [2]

> Мне нужно разделить работу, при нажатии на кнопку мыши..
> . В первом случае: обычный клик (WM_LBUTTONDOWN + WM_LBUTTONUP)
> -> Процедура 1, во втором случае: нажатие + удержание (WM_LBUTTONDOWN  + ???????) -> Процедура 2...


Эти два случая практически не отличаются.
И в первом и в другом между down и up проходит много колов времени.
Но, можно поступить очень просто: в OnMouseDown пускать таймер,
с интервалом, скажем, 100 мсек, а в OnMouseUp его выключать.
Тогда, в OnTimer и пускать Процедуру 2 (отключив предварительно таймер).

Состояние нажатого можно сохранять в поле типа TShiftState,
а если нужны и клавиши - с помощью GetKeyboardState.

--
Regards, LVT.



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
15-1137476127
begin...end
2006-01-17 08:35
2006.02.05
С Днём рождения! 17 января


1-1136371639
TStas
2006-01-04 13:47
2006.02.05
Как вытащить из TMSG состояние шифтовых клавиш?


11-1118401504
AK Delfin
2005-06-10 15:05
2006.02.05
MCK компонент производный от TKOLLabel ->TKolLinkLabel


15-1137103593
mar4ell0
2006-01-13 01:06
2006.02.05
С чем связывал Й. Хейзинг возникновение культуры?


2-1137700639
(CHALING 32)S K i N E R
2006-01-19 22:57
2006.02.05
Число