![]() |
|
![]() ![]() ![]() |
|
Virus |
|
|||
Unregistered |
Люди как работает DBComboBox или BDListBox почему он сразу не отражает данные которые прикрепленны к DataField?
|
|||
|
||||
&-ray |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 406 Регистрация: 15.4.2003 Где: Казахстан, г Аста на Репутация: нет Всего: нет |
DBComboBox и BDListBox сами не формируются, их надо заполнять самому.
Если хочешь, чтобы списки формировались автоматически, то вместо этих компонентов используй DBLookupComboBox или DBLookupListBox -------------------- "Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б. -------------------- И снова мышь беру я в руки Куда иду? - Конечно в сруки! |
|||
|
||||
Cashey |
|
||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Так-то оно так вот даже код который можно использовать для загрузки данных в свойство Items автоматически
Вот только хотелось бы узнать для чего созданно св-во DataField. А компоненты DBLookupComboBox и DBLookupListBox предназначены немного для другого. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||
|
|||||
lider07 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 11.6.2003 Где: Бишкек Репутация: нет Всего: нет |
В практике программирования довольно часто встречается ситуация когда информация, предназначенная для отображения в имеющемся компоненте, не помещается по длине. С подобным обычно сталкиваются в работе с базами данных. В таких случая выручают всплывающие
подсказки – Hint. Но, в некоторых случаях, даже такая возможность не спасает. К таким ситуациям можно отнести работу с выпадающим списком в DBComboBox. Представьте, что размер поля увеличился, а изменить ширину DBComboBox на форме, по тем или иным причина м, нет возможности. Конечно, можно увеличить ширину выпадающего списка. Но выглядит это не всегда красиво да и не делает чести разработчику. Предлагаемая идея позволит создать более изящный компонент. Взгляните на рисунок: В демонстрационном примере в выпадающем списке появляется всплывающая подсказка для строки не помещающейся по длине. При работе с Hint нужно помнить – использовать ToolTip из API, бесполезная затея. Delphi игнорирует любые попытки работы ним. Для этих целей в Delphi предусмотрен класс – THintWindow. В своем компоненте объявите FTipHint: -------------------------------------------------------------------------------- type TVSComboBox = class(TCustomComboBox) … private FHint: THintWindow; … protected procedure WMCTLCOLORLISTBOX(var Message: TMessage); message WM_CTLCOLORLISTBOX; и не забудьте выполнить инициализацию в конструкторе вашего компонента: -------------------------------------------------------------------------------- … begin inherited Create(AOwner); FHint := THintWindow.Create(Self); … Чтобы получить информацию об активной строке в выпадающем списке ComboBox перехватите сообщение WM_CTLCOLORLISTBOX. В процедуре сообщения анализируйте - если длина строки больше ширины выпадающего списка – передайте "длинную" строку в ваш Hint и активируй те его: -------------------------------------------------------------------------------- FHint.ActivateHint(TextRC, Items[ItemIndex]); где TextRC – прямоугольник для строки подсказки Items[ItemIndex] – "длинная" строка из выпадающего списка Если активная строка в выпадающем списке "короткая" – спрячьте Hint: -------------------------------------------------------------------------------- FHint.ReleaseHandle; Для получения подробной информации о классе THintWindow воспользуйтесь Help из Delphi. |
|||
|
||||
&-ray |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 406 Регистрация: 15.4.2003 Где: Казахстан, г Аста на Репутация: нет Всего: нет |
Это свойство связывает данный компонент с полем связанного набора данных. При изменении item'а в компоненте, соответственно изменяется содержимое соответствующего поля в активной записи. -------------------- "Совсем неважно от чего помрешь, ведь куда важнее - для чего родился..." С.Б. -------------------- И снова мышь беру я в руки Куда иду? - Конечно в сруки! |
|||
|
||||
Virus |
|
|||
Unregistered |
Спасибо, но не мог бы ты по-подробнее рассказать об отличии этого компонента от обычного CobboBox'а |
|||
|
||||
eof |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 68 Регистрация: 30.5.2003 Репутация: нет Всего: нет |
![]() при изменение значения DBComboBox его DataSource.DataSet переходит в режим редактирования. Зничение которое выбрано из списка присваевается DataField.NewValue, при смене записи DataSource.DataSet пытается сделать Post. Короче это как DBEdit со списком предлагаемых вариантов заполнения поля... извеняюсь, но подробнее чем &-ray врятли можно ответить Это сообщение отредактировал(а) eof - 24.6.2003, 15:49 |
|||
|
||||
forest |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 31.3.2004 Репутация: нет Всего: нет |
jib,cz
Это сообщение отредактировал(а) forest - 29.4.2004, 23:36 |
|||
|
||||
eugenko |
|
|||
Unregistered |
Люди хоть кто-нибудь.... хоть когда-нибудь.... доставал данные из DBComboBoxa ??? Как туда их запихнуть разжевано до мелочей... а достать?? а если еще и в переменную передать - так тогда я вообще буду премного благодарен!!!
|
|||
|
||||
FRAGNATIC |
|
|||
![]() ..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 2 Всего: 11 |
eugenko
а DBComboBox1.Text; ваще ни как? или чёт я не понял чё те надо-то конкретно? |
|||
|
||||
Guest |
|
|||
Unregistered |
Вобщем задача следующая: есть Оракловый запрос, результат которого выводится в DBComboBox, так вот при позиционировании на какую-либо запись в комбобоксе хотелось бы чтобы строку на которой позиционируешься можно было присваивать в переменную. Вот. А я все обчитал и обыскался а как это реализовать - непойму
![]() |
|||
|
||||
Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 1 Всего: 108 |
нифига не понятно... тебе нужно итем сохранить? -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
eugenko |
|
|||
Unregistered |
Разобрался!!! Надо юзаить DBLookupComboBox. Правильно настраиваем KeyField, ListField и ListSource - и будет счастье
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |