![]() |
|
|
![]()
|
|
| Superklug |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Доброго всем времени суток!
Мне необходимо написать свой компонент. Это ComboBox похожий на строку адреса в IE. Суть его поведения в том, что элементы выпадающего списка фильтруются по мере ввода текста в поле. Никогда не писал свои компоненты, поэтому очень надеюсь на вашу помощь... От чего лучше наследовать новый класс? Если от TEdit, то как добавить всплывающее окно? Если от TComboBox, то как изменить его поведение? Буду рад примерам и ссылкам на литературу... |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 1 Всего: 140 |
Superklug, я уже наподобие такой темы создал =)))) если получится у тебя то поделись
-------------------- Amazing |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 97 |
Месье слышал про множественное наследование? Хотя в этом случае лечше использовать не Эдит а Мемо (или Рич).... Хотя вообще то я бы сделал по другому - TEdit + TMemo+ TStringList + TBitBtn (Если нужно будет принудительно закрывать выпадающий список). Как только ты начинаеш вводить текст в Эдит появляется Мемо с вожможными вариантами. Сортировка в TStringList'е уже реализована, так что проблем не будет. А исчезать оно (Мемо) будет в том случае, если Edit или BitBtn будут терять фокус. Соответсвенно в TStringList'е будут храниться все-все-все значения. Ну про BitBtn думаю всё понятно... Это сообщение отредактировал(а) UniBomb - 5.12.2008, 12:23 |
|||
|
||||
| Superklug |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
UniBomb, видимо надо было мне раньше упомянуть, что элементы списка берутся из БД. Т.е. по мере ввода будет просто меняться SQL запрос...
Теперь про Memo.. Во-первых почему именно оно? Ведь в нем отображается текст, а не список элементов. Во-вторых отобразить Memo - это значит разместить его на форме родителе, так? Как тогда ему "всплывать" за пределы формы? |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 97 |
хм... а не будет это дело тормозить? ну да, тут я неподумавши сказал. Нужно TListBox. Про "всплывать за пределы формы" ни я, ни ты не говорили. Непонятно к чему вопрос... Добавлено через 1 минуту и 51 секунду а ещё лучше поискать готовый компонент.. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 1 Всего: 140 |
угу... тока гугл меня на этот раз подводит -------------------- Amazing |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 97 |
||||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 1 Всего: 140 |
Superklug, короче нашел один, вроде неплохой =)))
Добавлено через 16 секунд UniBomb, на торри они же платные?! Добавлено через 1 минуту и 16 секунд Superklug это обычный едит который появляется на вкладке стандарт Присоединённый файл ( Кол-во скачиваний: 11 )
AutoCompleteEdit.rar 4,09 Kb-------------------- Amazing |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 3 Всего: 97 |
||||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 1 Всего: 140 |
ну я там тока платные видел.. может плохо смотрел..
-------------------- Amazing |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 13 Всего: 191 |
Вообще-то Windows предоставляет возможность управлять стандартным списком с помощью SHAutoComplete или IAutoComplete (более функционален)
|
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 1 Всего: 140 |
Rrader, вполне возможно)))
дело в том что я нуб в С++ и мне легче найти компонент и научиться с ним работать чем вот это вытворять. -------------------- Amazing |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 167 Всего: 306 |
||||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 1 Всего: 140 |
угу. но пока мои знания скупы (сам об этом знаешь), особенно с этим новым для меня зверем =))) за все время знакомства со С++ я прочитал тока одну книжку, очень тонкую и не самую хорошую. -------------------- Amazing |
|||
|
||||
| Superklug |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Rrader, почитал про SHAutoComplete и IAutoComplete. Первое не подходит, т.к. позволяет вводить только URL и каталоги. Второе, т.к. возникает ограничение на ОС(
Зато нашел вот это. Помогите мне "прикрутить" этот класс к проекту. Мои попытки не увенчались успехом(( Куча ошибок... Это сообщение отредактировал(а) Superklug - 6.12.2008, 00:00 |
|||
|
||||
| Superklug |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Так я и не смог использовать этот класс( Он написан для Visual...
Теперь пытаюсь доделать компонент, который предложил MoLeX. У меня несколько вопросов: 1) Как сделать так, чтобы всплывающий список пропадал так же как и обычное PopupMenu. Сейчас это происходит только в случае когда Edit теряет фокус... 2) Как добавить этому компоненту новое событие - выбор элемента из списка? Повторюсь, я никогда не писал компоненты... Расчитываю на вашу помощь. |
|||
|
||||
| Superklug |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Rrader, Не знаю как и благодарить...
Это сообщение отредактировал(а) Superklug - 6.12.2008, 19:36 |
|||
|
||||
| Rrader |
|
||||||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 13 Всего: 191 |
Итак, альфа версия контрола для собственного AutoComplete. Выполнен не в виде компонента (думаю, кому надо, тот исправит
Код *.h:
Код *.cpp
Пример использования:
Это сообщение отредактировал(а) Rrader - 7.12.2008, 20:26 Присоединённый файл ( Кол-во скачиваний: 16 )
AutoComplete.rar 9,67 Kb |
||||||
|
|||||||
| Superklug |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Rrader, спасибо за Вашу работу, но есть несколько недочетов(( Во-первых список не всплывает за пределы формы. Во-вторых он не пропадает при щелчке на форме (например), это происходит только при потере Edit-ом фокуса. Ну и, разумеется, скрол...
|
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 13 Всего: 191 |
Superklug, время будет, поправлю
|
|||
|
||||
| Superklug |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 16.6.2006 Репутация: нет Всего: нет |
Итог: несколько наполовину работающих компонентов(( |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |