Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.053 c
15-1200378567
Москва(с)
2008-01-15 09:29
2008.02.17
Запрет доступа к серверу


2-1200997439
Gusev
2008-01-22 13:23
2008.02.17
Как реализовать "права пользователя" в своей программе? (БД)


15-1200217927
andreil
2008-01-13 12:52
2008.02.17
Как добавить в TTreeView простую строку?


2-1201243371
tytus
2008-01-25 09:42
2008.02.17
Excel (Office2003) - как писать в разных листах?


6-1180530369
Чародей
2007-05-30 17:06
2008.02.17
host email





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский