Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация автозаполнения, Как это сделать? 
V
    Опции темы
ИгнатьевАлексей
Дата 20.2.2006, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Господа! Подскажите пожалуйста!
Все тривиально!
Есть поле ввода на форме и есть список слов. Хочется иметь при вводе в это поле автозаполнение из списка. Меня интересует в большей степени какой обьект это дело обеспечивает.
Заранее благодарен!
VB forever!!!


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 20.2.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Собсно ListBox... или я тебя не понял.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
СВА
Дата 21.2.2006, 05:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 9.1.2006

Репутация: нет
Всего: нет



нет, здесь используется ComboBox в нем уже список + текстовое поле
PM MAIL   Вверх
ИгнатьевАлексей
Дата 27.2.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Ловлю событие изменения поля ComboBox, по этому событию очищаю список ComboBox, организовываю поиск по шаблону в базе данных и подходящие слова снова загружаю в список.
Это то, как я понимаю алгоритм, и с его реализацией проблем нет. Но сверлит мысль, что где-то это должно быть уже в готовом виде представлено - ведь задача эта решается повсеместно! Или я не прав? Я опасаюсь будущих проблем с быстродействием когда база данных распухнет до приличных пределов. smile


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Naghual
Дата 27.2.2006, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



ИМХО: Лучше реализовать самому с оптимизацией БД под решаемую задачу.
Все готовое, как правило, по сути свой универсально, а значит несем в себе избыток функций и как следствие потерю в производительности.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
ИгнатьевАлексей
Дата 27.2.2006, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Спасибо!

Если можно, то еще пара мелких вопросиков по работе с ComboBox:

1. Мне почему-то не удалось найти метод, который очищал бы список, но оставлял бы текстовое поле, неужели такого метода нет?

2. Как сделать, что бы список высвечивался сам, то есть без нажатия на стрелочку? Нет ли здесь какого либо свойства? (опять же, мои поиски не увенчались успехом smile )

Заранее благодарен!

VB forever!!!


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Naghual
Дата 27.2.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



1:
Код

    Dim strComboText As String
    
    strComboText = Combo1.Text
    Combo1.Clear
    Combo1.Text = strComboText



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
ИгнатьевАлексей
Дата 27.2.2006, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Пробовал такое!

Выскакивает:
Run-time error '28':
Out of stack space



--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 27.2.2006, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(ИгнатьевАлексей @ 27.2.2006, 18:47 Найти цитируемый пост)
Выскакивает:
Run-time error '28':
Out of stack space

на какой именно строке? потому как сообщение об ошибке в принципе не соотносится с кодом...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ИгнатьевАлексей
Дата 27.2.2006, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Ошибка возникает на третьей строке, причем строковой переменной при этом нормально присваевается значение Combo1.Text. Пробовал писать в третьей строке
Код

Combo1.Text = "Реальная строка, которая сидит в strComboText"

все проходит как надо!


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Naghual
Дата 27.2.2006, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



А ты в какой процедуре этот код вызываеш?
А то больно похоже на зацикливание.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
ИгнатьевАлексей
Дата 27.2.2006, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



smile
Ну конечно же! Конечно я, придурок, делаю это в процедуре обработки изменения текстового поля ComboBox.
Получается допустимо лишь что-то типа следующего?
Код

While Combo1.ListCount <> 0
      Combo1.RemoveItem(Combo1.ListCount -1)
Wend

Скажите пажалуйста, а оператор For Each... в данном случае можно применить или нет? У меня как то не получилось? Ведь как то все это нерационально выглядит smile Меня просто в дальнейшем ждут большие объемы по автозаполнению!


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Naghual
Дата 27.2.2006, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



For Each используется только с объектами.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
ИгнатьевАлексей
Дата 27.2.2006, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Друзья! А по моему вопросику №2 ни кто не сталкивался с подобной проблемой? Ведь хорошо бы чтобы юзер набирал начало слово, а список с вариантами сам бы открывался. А он, собака, только после того, как на "галочку" кликнешь, т.е неясно, есть варианты по подстановке или нет?


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Naghual
Дата 27.2.2006, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 26
Всего: 49



2:
Декларация:
Код

Private Const CB_SHOWDROPDOWN = &H14F

Private Declare Function SendMessage _
    Lib "user32" Alias "SendMessageA" ( _
        ByVal hwnd As Long, ByVal wMsg As Long, _
        ByVal wParam As Integer, ByVal lParam As Any) As Long


Использование:
Код

    SendMessage Me.cboCombo.hwnd, CB_SHOWDROPDOWN, -1, ""



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.2208 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.