Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.17;
Скачать: CL | DM;

Вниз

Как сделать. чтобы 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.038 c
2-1201155932
Василий К.
2008-01-24 09:25
2008.02.17
Extended в TThread и его деление...


2-1201193988
AntonUSAnoV
2008-01-24 19:59
2008.02.17
как записать в событие onkeydown сочетание клавиш


15-1200161665
Черный Шаман
2008-01-12 21:14
2008.02.17
Высокая, высокая наука.


2-1201179793
Darvin
2008-01-24 16:03
2008.02.17
Как сделать окно fsStayOnTop только для своего приложения


6-1179711254
Rimd
2007-05-21 05:34
2008.02.17
html файл как текст