Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.01 c
15-1136568903
Джо
2006-01-06 20:35
2006.02.05
MS-DOS Executive, файловый менеджер времен Windows 1.0


3-1133529056
mpokemonov
2005-12-02 16:10
2006.02.05
Записи в таблицы


15-1137157638
psa247
2006-01-13 16:07
2006.02.05
Матрицы LCD - мониторов !


1-1135880057
___SED
2005-12-29 21:14
2006.02.05
Можно ли написать на делфи 64-х битную прогу?


8-1124787106
vince
2005-08-23 12:51
2006.02.05
Зеркальное отображение растра





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский