Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Автозаполнение Combobox в VFP  [new]
zerost
Member

Откуда:
Сообщений: 6
т.к. я ещё новичок, то есть проблемы в написании программ на VFP
значит суть проблемы: есть программка в которой используется Combobox заполненный определёнными значениями на этапе разработки!
После запуска программы, чтобы когда в Combobox ввожу в ручную какой-то первый символ, то чтобы список раскрылся (это знаю как сделать) и указатель переходил на строку в которой первая буква слова совпадает с буквой введённой в Combobox в ручную..., затем после ввода второй буквы в поле, указатель должен переместиться дальше, на строку со словом первые буквы которого совпадают с ведёнными руками и т.д.
Пытался делать со свойствами компонента selstart, seltext и sellength, ничего не выходит... ((
Если возможно, то напишите кусочек кода!!!

За ранее огромное спасибо!
4 май 08, 11:05    [5620674]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
проходящий.
Guest
Что-то не так делаешь. Комбо сам умеет все это делать без допдвижений.
4 май 08, 11:12    [5620703]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
Galyamov Rinat
Member

Откуда:
Сообщений: 658

Свойство Combo.style = 2

Дальше комбик сам разрулит.

Заодно посмотри по _INCSEEK System Variable


Posted via ActualForum NNTP Server 1.4

4 май 08, 12:58    [5621161]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
MiklS
Member

Откуда: Владивосток
Сообщений: 131
*InterActiveChange
WITH This
	LOCAL cText, cT, i
	cText=ALLTRIM(.DisplayValue)
	FOR i=1 TO .ListCount	
                  IF PROPER(cText)=PROPER(SUBSTR(ALLTRIM(.List(i)), 1, LEN(cText)))
		   cT=RTRIM(SUBSTR(ALLTRIM(Ima), LEN(cText)+1))
		   .Value=cText+cT
		   .SelStart=LEN(cText)
		   .SelLength=LEN(cT)
	      ENDIF
	ENDFOR
ENDWITH
Приблизительно так...
4 май 08, 14:10    [5621449]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
zerost
Member

Откуда:
Сообщений: 6
проходящий.
Что-то не так делаешь. Комбо сам умеет все это делать без допдвижений.

Если его поставить на форму не меняя ни каких свойств, то не делает то, что надо..., может надо изменить какое свойство... я не знаю!
Galyamov Rinat

Свойство Combo.style = 2

Дальше комбик сам разрулит.

Нет, не оно!
Изменяя это свойство, не получаю, то что нужно..., получается так: ввёл я одну букву и указатель перещёл на строку слово которой совпадает с введённой буквой и это слово из строки сразу же появляется в поле комбобокса...

А мне нужно при раскрытом combo ввести одну букву и чтобы указатель перешел на слово в списке начинающееся на такую же букву, НО чтобы это слово не появлялось в поле, чтобы в поле оставалась попрежнему введёная мною буква, после я должен ввести вторую букву и чтобы указатель сместился на строку слово которой начинается на те 2 буквы которые я ввёл, в поле должны остаться 2 буквы которые я ввёл и так далее..., ввожу 3-ю букву, в поле combo остаются 3 моих буквы, а указатель перемещается дальше на строку в которой слово начинается на эти 3 символа которые я ввёл... и так далее по мере введения символов...
Help me please! :)
5 май 08, 13:25    [5625586]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
Galyamov Rinat
Member

Откуда:
Сообщений: 658

В чистом виде такого нет - делай свой контрол из textbox и listbox


Posted via ActualForum NNTP Server 1.4

5 май 08, 13:55    [5625808]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
zerost
Member

Откуда:
Сообщений: 6
Нет, тут просто надо что-то написать в процедуре InterActiveChange данного компонента... и так думаю что-то со свойствами SelStart, SelLength, но у меня не получилось...
5 май 08, 14:16    [5625957]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
Рома Б.
Member

Откуда: Нижний Новгород
Сообщений: 72
Я тебе выложу завтра-послезавтра пример ComboBox'а. Но там чёкнешься. Просто заказчик упёртый был. Надо задействовать методы InteractiveChange, DropDown, LostFocus и KeyPressed. Корректно обрабатывать клавиши <Delete> и <BackSpace>, значимые пробелы, полные совпадения текста в разных строках таблицы. Единственно, у меня всё-таки показывается весь текст, а не только введённые символы, однако невведённые символы - с подсветкой, как в примере от MiklS. Я выкладывал этот пример уже, но по теме работы с кладрами. Ссылки давно убили. Если времени в обрез - откажись от этой затеи. Для большинства задач стандартные возможности ComboBox'а - неплохой компромисс. Хотя признаю - убожество.
5 май 08, 14:18    [5625966]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
zerost
Member

Откуда:
Сообщений: 6
Рома Б. выложи пожалуйсто, если тебе не так трудно, буду очень благодарен, время пока есть... и вообще мне реализация данной проблемы очень интересна!
5 май 08, 16:22    [5626868]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
Dag
Member

Откуда:
Сообщений: 842
Если используется VFP9, то можно использовать текстбокс с автозаполнением.
5 май 08, 16:30    [5626923]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
Galyamov Rinat
Member

Откуда:
Сообщений: 658


> Автор: Dag
> Если используется VFP9, то можно использовать текстбокс с
> автозаполнением.

Единственно таблицу самому заполнять и следить, чтобы во время работы туда
пользовательский ввод не попадал.

По моему проще создать свой контрол.


Posted via ActualForum NNTP Server 1.4

6 май 08, 07:42    [5628773]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
zerost
Member

Откуда:
Сообщений: 6
Dag
Если используется VFP9, то можно использовать текстбокс с автозаполнением.

Нет, используется 8-ая версия!
Рома Б.
Единственно, у меня всё-таки показывается весь текст, а не только введённые символы, однако невведённые символы - с подсветкой,

Так даже будет ещё лучше..., в отличие от моего варианта который я хотел!
Galyamov Rinat
По моему проще создать свой контрол.

Пока я этого не умею! ((
6 май 08, 13:04    [5630511]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
Galyamov Rinat
Member

Откуда:
Сообщений: 658

> Пока я этого не умею! ((

Создаешь библиотеку классов. Создаешь класс на базе класса control или
custom.
Запихиваешь туда контролы textbox и listbox.
Разруливаешь их поведение так как считаешь правильным для твоей задачи.

Поверь - это будет лучше в твоем варианте, т.к. ПОЛНОСТЬЮ менять поведение
стандартного контрола довольно таки проблематично.


Posted via ActualForum NNTP Server 1.4

6 май 08, 13:15    [5630604]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
Galyamov Rinat
Member

Откуда:
Сообщений: 658

наврал про custom. Конечно же не custom а contaner.


Posted via ActualForum NNTP Server 1.4

6 май 08, 13:36    [5630783]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
Рома Б.
Member

Откуда: Нижний Новгород
Сообщений: 72
Вот. Ковыряйся. Читай kladr.doc. Архив - 37 МБ (кладр тяжёлый). В combobox'ах также работа с фильтрами осуществлена. Так надо было. Выкинь фильтры.
6 май 08, 21:46    [5633459]     Ответить | Цитировать Сообщить модератору
 Re: Автозаполнение Combobox в VFP  [new]
zerost
Member

Откуда:
Сообщений: 6
Рома Б., спасибо! Сейчас скачаю, буду разбираться!!!
7 май 08, 09:28    [5634271]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить