Форум: "Начинающим";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
ВнизКак сделать. чтобы ComboBox-ы заполнились и "зафиксировались"? Найти похожие ветки
← →
Guriev (2008-01-24 12:00) [0]Есть БД = Access + Delphi (ADO). При запуске программы появляется таблица-список (DBGrid), по двойному щелчку на определённой строке, открывается уже более объёмное окно (12 -Edit, 7 - ComboBox, 5 - Memo...) на котором также есть кнопка "Редактировать".
Помогите реализовать следующее:
Как сделать так, чтобы в режиме просмотра строки (записи) - ДО нажатия на "Редактировать", ComboBox-ы заполнились, но "зафиксировались" на определённой записи (т.е. были как only read Edit), а в режиме Редактирования бы отключалась!?
← →
Mariya (2008-01-24 12:04) [1]DBLookupCombobox1.ReadOnly:=False; в кнопке редактировать? А по умолчанию в свойствах тру?
← →
DiamondShark © (2008-01-24 12:42) [2]
> ДО нажатия на "Редактировать", ComboBox-ы заполнились, но
> "зафиксировались" на определённой записи (т.е. были как
> only read Edit), а в режиме Редактирования бы отключалась!
> ?
Написанное означает либо, что комбобоксы тут вообще не нужны, либо, что с русским языком проблемы.
← →
Guriev (2008-01-24 12:48) [3]
> DBLookupCombobox1.ReadOnly:=False; в кнопке редактировать?
> А по умолчанию в свойствах тру?
Есть одно НО:
- при запуске этой формы просмотра/редактирования заполняются Combobox-ы не повторяющимися записями из определённого столбца, а ЗАТЕМ хотелось бы "зафиксировать" на конкретной строчке, соответствующей записи в таблице: пр. выбрана в базе запись №333 об Иванове, Combobox заполнился (Петров, Сидоров, Иванов, Смирнов) - 3 строка - "Иванов" должна выбраться аавтоматически и без возможности открыть выпадающий список, или изменить!
← →
Mariya (2008-01-24 12:52) [4]Если ты правильно связал грид с тэйблом и датасорсом, и комбобокс с "главным тэйблом" у тебя он так и так при выборе твоего Иванова, в комбобоксе должен показать, данные, принадлежащие Иванову.
← →
Mariya (2008-01-24 12:54) [5]
> без возможности открыть выпадающий список
он список откроет.
> или изменить
но изменить нельзя будет
← →
Guriev (2008-01-24 13:05) [6]Смысл в чём? - Зачем создавать 2 формы?!?!
Я хочу создать одну! Во время просмотра всё ReadOnly:=True, и чтобы из-за случайного движения мыши не сбилась информация в Combobox! Но при этом хочу сделать, чтобы пользователь мог быстро переключиться в режим редактирования (все значения остались исходными (как в просмотре), но те-же Combobox-ы уже заполнены неповторяющимися значениями из базы и включена возможность выбора другово)!
← →
DiamondShark © (2008-01-24 13:07) [7]И что у тебя не получается?
← →
Guriev (2008-01-24 13:13) [8]
> И что у тебя не получается?
Как заполнить Combobox из столбца базы? И потом сопоставлять ItemIndex c записью?
← →
DiamondShark © (2008-01-24 13:18) [9]
> Как заполнить Combobox из столбца базы? И потом сопоставлять
> ItemIndex c записью?
Это очень сильно отличается от исходного описания задачи.
1. Если комбобоксы простые или TDBComboBox, то открыть вспомогательный датасет, пробежаться по нему, переписать значения в Items комбобокса
2. Использовать TDBLookupComboBox
← →
Guriev (2008-01-24 16:06) [10]Да, TDBComboBox!...
> 1. Если комбобоксы простые или TDBComboBox, то открыть вспомогательный
> датасет, пробежаться по нему, переписать значения в Items
> комбобокса
Но тогда как потом установить в нём нужное значение без дублирования?
← →
Guriev (2008-01-24 16:08) [11]И, вроде-бы, вопрос простой, НО, - как потом в этом значении DBComboBox зафиксировать?
← →
DiamondShark © (2008-01-24 16:28) [12]
> Но тогда как потом установить в нём нужное значение без
> дублирования?
if TDBComboBox1.Items.IndexOf(s) < 0 then TDBComboBox1.Items.Add(s)
> И, вроде-бы, вопрос простой, НО, - как потом в этом значении
> DBComboBox зафиксировать?
Что значит "зафиксировать"? В комбобоксе будет значение из поля записи.
← →
Guriev (2008-01-24 17:56) [13]
> Что значит "зафиксировать"? В комбобоксе будет значение
> из поля записи.
Но, если пользователь случайно раскроет выпадающий список, или ненароком порутит колёсико мыши... ComboBox же заполнен!
Т.е. на время просмотра сделать ComboBox - Edit-ом с ReadOnly:=True
← →
DiamondShark © (2008-01-25 11:57) [14]
> с ReadOnly:=True
Сам себе ответил
← →
Guriev (2008-01-25 15:27) [15]
> DiamondShark © (25.01.08 11:57) [14]
>
> > с ReadOnly:=True
Ты прав... отчасти!
Нельзя сменить в выпадающем списке значение (хотя неприятно уже то, что этот список можно вызвать) при ReadOnly:=True,
НО! - "Backspace" срабатывает! А вот Active:=false уже у него нет!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.046 c