powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TComboBox.DroppedDown и курсор мыши.
15 сообщений из 15, страница 1 из 1
TComboBox.DroppedDown и курсор мыши.
    #40060807
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу сделать комбобокс который подтягивает данные в список из базы после того как в него ввели несколько символов.
В принципе всё работает отлично, но есть один нюанс: если я в процессе делаю DroppedDown := True; то список открывается, но пропадает курсор мыши. Причём если ей подвигать - он явно есть, элементы списка выделяются, но курсора не видно. Когда список открываешь кнопкой со стрелкой, то такого эффекта не наблюдается.

Может кто-нибудь посоветовать как это победить?..

P.S: Курсор пропадает когда начинаешь вводить текст в комбобокс, ShowCursor(TRUE); не помогает.
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060808
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Панель управления" - "Мышь" - "Указатель" - "Скрывать курсор мыши при вводе текста".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060813
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

"Панель управления" - "Мышь" - "Указатель" - "Скрывать курсор мыши при вводе текста".

Это замечательно, но мне надо показать курсор только для одного контрола, это невозможно через WinApi?

Причём проблема в том, что при обычном вводе - курсор снова появляется как только ты сдвинешь мышь с места, а в моём случае он не появляется пока не будет закрыт список комбобокса.
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060817
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кусок кода:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
  if (LText.Length >= 3) and (LText <> FComboFilter) then
  begin
    Items.BeginUpdate;
    try
      Items.Clear;
//      DroppedDown := True;
      Screen.Cursor := Cursor;


Если выделенная строка закомментирована, то при наборе 3го символа - курсор мыши становится видимым. Если нет - открывается список, но курсор мыши остаётся невидимым. Я не понимаю куда копать 😒
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060834
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй навскидку обернуть, типа:

Код: pascal
1.
2.
3.
ShowCursor(False);
DroppedDown := True;
ShowCursor(True);



это на коленке, не проверял. А вообще надо разбираться что происходит
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060852
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger
Попробуй навскидку обернуть, типа:


Вот так пробовал, толку 0:
Код: pascal
1.
2.
DroppedDown := True;
ShowCursor(True);


Такое ощущение что DropDown делает Mouse Capture и после этого невозможно управлять видимостью курсора. Во всяком случае если после вызвать ReleaseCapture(); то список моментально закрывается.

GetCursorInfo() показывает и flags = 0, и hCursor = 0, именно поэтому я и сделал через Screen.Cursor.

Вообще уже даже предположения закончились что тут не так. Пытался показать курсор, вызвать Application.ProcessMessages, а потом открыть список через PostMessage() - всё то же самое.
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060861
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй на чистом API чтобы исключить баг в VCL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060863
delphinotes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если программно перед DropDown подвигать курсор на пару пикселей туда-сюда?
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060864
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Попробуй на чистом API чтобы исключить баг в VCL.

Жёстко... Кроме того, в VCL там почти ничего нет, завтра просто в обработчике сообщений отключу VCL-ную часть и проверю.
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060865
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpКроме того, в VCL там почти ничего нет

В VCL наворочено столько дерьма, что я даже не уверен настоящий ли там Combo Box или они
ручками пририсовали к Edit кнопку и вываливают List Box самостоятельно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060866
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Настоящий. Там даже список открывается сообщением, просто потом ещё нотификации открытия обрабатывается, в основном обновляются размеры и вызываются события. Т.е. именно при раскрытии лишнего там минимум.
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060951
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
09.04.2021 01:29, alekcvp пишет:
> Настоящий. Там даже список открывается сообщением,

сообщения разные бывают.
в VCL есть и свои собственные.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40060959
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

сообщения разные бывают.
в VCL есть и свои собственные.

Я в курсе, спасибо.
CB_SHOWDROPDOWN
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40061083
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
delphinotes
А если программно перед DropDown подвигать курсор на пару пикселей туда-сюда?

Не работает.
...
Рейтинг: 0 / 0
TComboBox.DroppedDown и курсор мыши.
    #40061097
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге сделал костыль: вместо DroppedDown := True; создаю таймер на 100 мс, а по таймеру уже вызываю список.
Так работает нормально.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TComboBox.DroppedDown и курсор мыши.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]