Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2011, 11:38   #1
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
Вопрос Каким компонентом вы пользуетесь для Lookup без Datasource ?

Здравствуйте!
Опять тупая нерешаемая проблема какая-то блин. Задача - нужен визуальный компонент типа "выпадающий список". Нужно отобразить список из DatasetL, поля для DisplayField и KeyField есть, с этим всё нормально. Но нет никакого основного Datasource/Dataset который должен принимать значение, значение выбранное в этом выпадающем списке обрабатывается вручную кодом - и вот из-за этого возникают какие-то тупейшие бесчисленные баги...
Например, среди стандартных Delphi компонент нет Lookup без DB, только DBLookupComboBox - ставим, настраиваем как написано выше - всё прекрасно работает до тех пор, как пытаешься сделать Field.Clear или воспользоваться NullValueKey, то есть когда нужно очистить выбранное значение в компоненте - сразу ошибка! Или JvDBComboBox - во-первых такая же проблема с очищением значения, но ещё и во-вторых без указания принимающего Datasource не срабатывает событие OnChange! JvDBLookupCombo пашет но опять без очищения и подглючивает стрелка открывающая список, криво отрисовывается. А вот например DevExpress TcxDBLookupComboBox при не указанном принимающем Datasource выпадающий список показывает, но ничего выбрать вообще не позволяет!

1. Каким компонентом пользуетесь для отображения таких списков?
2. Или подскажите как назначить принимающий Datasource без связи с БД? Без SQLSelect итд и вообще без обращения к БД, а только чтобы в памяти хранил переменную. Попробовал просто создать пустые Dataset и Datasource - программе не нравится, ошибка что пустой Dataset, добавил в него поля через FieldEditor - всё равно также. Пробовал всякие разные MemoryData и DataEmbedded - что не пашет. Так как назначить Datasource без связи с БД?
delphicoding вне форума Ответить с цитированием
Старый 10.10.2011, 17:09   #2
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

Цитата:
DatasetL
что это?
...................
Lesha вне форума Ответить с цитированием
Старый 10.10.2011, 22:27   #3
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Dataset for Lookup List

Если никто не знает нужного компонента - подскажите как реализовать п.2 ?
delphicoding вне форума Ответить с цитированием
Старый 12.10.2011, 09:43   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Например, среди стандартных Delphi компонент нет Lookup без DB, только DBLookupComboBox
Цитата:
Задача - нужен визуальный компонент типа "выпадающий список"
чем не устраивает простой ComboBox? при желании его тоже можно связать с DataSet. правда придется писать код, строк эдак 10-20, и потом следить за этим кодом.
Цитата:
Или подскажите как назначить принимающий Datasource без связи с БД?
точнее набор данных (DataSet).смотри в сторону ClientDataSet. сам никогда им не пользовался.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 12.10.2011 в 09:47.
evg_m вне форума Ответить с цитированием
Старый 14.10.2011, 11:53   #5
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Цитата:
чем не устраивает простой ComboBox? при желании его тоже можно связать с DataSet. правда придется писать код, строк эдак 10-20, и потом следить за этим кодом.
Этим и не нравится. Лишний код - лишние проблемы.

Кто-нить ещё что-нить путное подскажет?
delphicoding вне форума Ответить с цитированием
Старый 14.10.2011, 11:56   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вам уже "путное" сказали - ClientDataSet

ADD

тока там "лишнего" кода будет побольше
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 14.10.2011 в 12:10.
Аватар вне форума Ответить с цитированием
Старый 14.10.2011, 12:15   #7
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

То есть побольше? Это же готовый Dataset без БД - зачем ещё "лишний код"?
delphicoding вне форума Ответить с цитированием
Старый 14.10.2011, 12:33   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Это же готовый Dataset без БД - зачем ещё "лишний код"?
Этот DataSet абсолютно пуст (ни с чем не связан). Но программист может и должен его заполнить (либо из БД(связать с БД с помощью кода), либо руками(опять же кодом)).

ADOQuery.SQL.text:='select * from tbl';
ADOQuery.open;
Это пример "обычного заполнения" готового ADOQuery.
А теперь все то, что делают эти две строчки вам предстоит сделать для другого "готового" ClientDatSet.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 14.10.2011 в 12:45.
evg_m вне форума Ответить с цитированием
Старый 14.10.2011, 16:43   #9
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Это не совсем так, в ClientDataSet есть возможность в визуальном режиме добавлять поля, создавать в памяти DataSet, делать его активным, итд. Таким образом кол-во кода связанного с этим ClientDataSet для описанного в первом постинге случая = 0.

Тем не менее, Вы правы - по пункту 2 нужен был именно ClientDataSet, спасибо!
delphicoding вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каким браузером Вы пользуетесь? Smitt&Wesson Софт 1 12.10.2010 21:51
Lookup без учета регистра ИВАНьКа Общие вопросы C/C++ 1 30.08.2009 12:48
Чат клиенты(каким вы пользуетесь)? NORS Софт 10 12.03.2009 21:20
Каким браузером вы пользуетесь? NORS Софт 1 19.02.2009 19:48
Каким языком программирования вы пользуетесь? LAN Свободное общение 6 19.11.2007 09:37