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

Вниз

Отключить скрол у TComboBox   Найти похожие ветки 

 
bss   (2010-06-01 15:59) [0]

У ComboBox"а есть раздражающее многих поведение - если фокус остался на компоненте, то он крутится по колесику мыши. Зачастую бывает - выбрал что-то в ComboBox"е, потом перевел курсор на тот же Grid (кликнуть и переправить фокус забыл) и начинаешь крутить колесо - а крутятся данные в ComboBox"е.

Как бы красиво отрубить ему этот функционал. Желательно так, чтобы когда курсор мыши был на ComboBox"е то список крутился, но если курсор ушел с ComboBox"а то уже нет.

А вообще самое идеальное - это позволить менять значение в ComboBox"е только сначала вызвав список и там уже выбрав значение, чтобы в схлопнутом состоянии не прокручивалось ни стрелочками, ни колесиком. Но тут возникает проблема управления ComboBox"ом с клавиатуры. Не знаю способа, чтобы с клавиатуры раскрыть список...


 
Kerk ©   (2010-06-01 16:01) [1]

ComboBox умеет скроллиться, не имея фокуса?!


 
bss   (2010-06-01 16:02) [2]


> ComboBox умеет скроллиться, не имея фокуса?!

ты неверно прочитал. ComboBox умеет скролится, имея фокус, но при этом курсор мышки не на нем, что порождает ошибки иногда.


 
Leonid Troyanovsky ©   (2010-06-01 16:06) [3]


> bss   (01.06.10 15:59)  

> с клавиатуры раскрыть список...

Alt+Down

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-06-01 16:08) [4]


> Leonid Troyanovsky ©   (01.06.10 16:06) [3]

Еще F4, ЕМНИП.


 
Kerk ©   (2010-06-01 16:09) [5]


> bss   (01.06.10 16:02) [2]
>
> > ComboBox умеет скроллиться, не имея фокуса?!
>
> ты неверно прочитал. ComboBox умеет скролится, имея фокус,
>  но при этом курсор мышки не на нем, что порождает ошибки
> иногда.

Теперь понял. Действительно, неприятно бывает.
Может, совсем ему колесо мышки отключить?


 
12 ©   (2010-06-01 16:20) [6]


> Теперь понял. Действительно, неприятно бывает.
> Может, совсем ему колесо мышки отключить?

может проще фокус отдать?


 
Дмитрий Т   (2010-06-01 16:47) [7]

вообще у меня дома и на работе работает по разному.

у меня есть ощущение, что разные мыши - разные драйвера, в результате события колеса приходят компоненту под которым мышь, а не тому на котором фокус.

меня тоже бесит, когда колесо фокусированному контролу приходит.

может в настройках покопаться? или драйвера поставить, а не штатные от Винды брать. в спец. драйверах должна быть навернутая настройка (видимо).


 
turbouser ©   (2010-06-01 16:59) [8]


> Дмитрий Т   (01.06.10 16:47) [7]
>
> вообще у меня дома и на работе работает по разному.

Наверное, дома комфортнее, от этого события от мышки приходят спокойнее и не так часто


 
Дмитрий Т   (2010-06-01 17:13) [9]

Не веришь?
Действительно разница есть.

Особо удобно крутить страницы и GUI - где мышь, там и крутится.
Видимо, драйвер так работает.


 
>_   (2010-06-01 17:13) [10]

При событии OnMouseWheel комбобокса проверять, открыт ли он, если нет - глушить. Не?


 
12 ©   (2010-06-01 17:28) [11]


> При событии OnMouseWheel комбобокса проверять, открыт ли
> он, если нет -

снимать с него фокус


 
bss   (2010-06-01 17:49) [12]


> Alt+Down


> Еще F4, ЕМНИП.

спасибо!


> Действительно разница есть.

разница есть, это правда. Видимо, действительно зависит от драйвера мыши.


> При событии OnMouseWheel комбобокса проверять, открыт ли
> он, если нет - глушить. Не?

ну если чО - у него нет такого события ))


 
Leonid Troyanovsky ©   (2010-06-01 18:20) [13]


> bss   (01.06.10 15:59)  

> Как бы красиво отрубить ему этот функционал.

ComboBox.Perform(CB_SETEXTENDEDUI, 1, 0);

Ну, и останется только стрелка вниз.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-06-01 18:22) [14]


> bss   (01.06.10 17:49) [12]

> от драйвера мыши.

Некоторые драйвера могли (могут?) генерировать
вместо событий колеса те же стрелки.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-06-01 18:23) [15]


> bss   (01.06.10 17:49) [12]

> ну если чО - у него нет такого события ))

Оно есть, в protected.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-06-01 18:44) [16]


> 12 ©   (01.06.10 17:28) [11]

> снимать с него фокус

Прерогатива юзера.

--
Regards, LVT.


 
Игорь Шевченко ©   (2010-06-02 13:18) [17]


> потом перевел курсор на тот же Grid (кликнуть и переправить
> фокус забыл) и начинаешь крутить колесо - а крутятся данные
> в ComboBox"е


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


 
bss   (2010-06-02 14:10) [18]


> а ты ждешь, что грид поймет

этого жду не я, этого ждут пользователи. И ладно если грид не начинает прокручиваться - человек соображает, что не перевел фокус, кликает и начинает опять прокручивать. Плохо то, что к тому времени может уже прокрутиться combobox на непонятное значение. И это, кстати, легко не заметить. Я сам такое натыкался в том же браузере при заполнении формы.


 
Игорь Шевченко ©   (2010-06-02 14:18) [19]

bss   (02.06.10 14:10) [18]


> этого жду не я, этого ждут пользователи


Если этого ждут пользователи твоей программы, перехватывай фокус автоматом при появлении курсора над нужным контролом (правда, ComboBox захватывает мышь, но только при открытом списке)


 
bss   (2010-06-02 14:43) [20]

зачем? Я не считаю это правильным. Также я считаю неправильным, что combobox крутится, когда курсор не над ним.


 
Leonid Troyanovsky ©   (2010-06-02 14:44) [21]


> bss   (02.06.10 14:10) [18]

> этого жду не я

Чем [13] не угодил?

--
Regards, LVT.


 
bss   (2010-06-02 14:57) [22]


> Чем [13] не угодил?

почему не угодил, очень даже угодил. И за F4, Alt+Вниз спасибо, я все запомнил, записал )) Просто в результате немного сделал по-другому, свел список ComboBox к двум значениям и тут уже заменил просто на CheckBox.


 
Омлет ©   (2010-06-02 15:10) [23]

В Опере и FF последних версий от этой недофичи избавились, за что им спасибо. А то в некоторых веб-формах думаешь, что скроллишь страницу, а прокручивается селект, что еще и вызывает долгое обновление всей формы под новые выбранные параметры.



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

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

Наверх




Память: 0.5 MB
Время: 0.076 c
2-1267989705
Delphist
2010-03-07 22:21
2010.08.27
подключение DBGrid к SQL Server в Delphi 2010


15-1264587985
Oleg
2010-01-27 13:26
2010.08.27
Может кто подскажет...


2-1267350234
Pavia
2010-02-28 12:43
2010.08.27
Отоброзить TStringList на экране.


15-1264627806
Юрий
2010-01-28 00:30
2010.08.27
С днем рождения ! 28 января 2010 четверг


2-1266738974
tonick2001
2010-02-21 10:56
2010.08.27
Выдернуть из переменной TStringList нужну строку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский