![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
HELP!!!! [D6, Paradox]
Timka © (2002-05-11 11:49:00)HELP!!! на форме - TDBCombobox,в него подгружены названия столбцов таблицы следующим образом:
dmSQLtrening.Query1.GetFieldNames(Form1.DBComboBox1.Items);
Form1.DBComboBox1.ItemIndex:=0;
в OnChange вставляю обработчик, например
Label3.Caption := DBComboBox1.Items.Strings[DBComboBox1. ItemIndex];
(для контроля, это значение вставляется в SQL-запрос )
при выборе элемента в списке событие не наступает!!!!
при этом, если делать данное присвоение принудительно, всё работает. Где я ошибаюсь?
Timka (2002-05-13 17:36:00) [1]... . я только изучаю компоненты. Попытался сразу использовать DBComboBox к DBGreed c использованием Query. Не получилось. а с TTable спасибо, проверил - действительно работает. Теперь сижу, думаю. Особенное спасибо за последнее замечание "а DBComboBox используют... ". Я это совсем упустил.
sniknik (2002-05-11 18:44:00) [2]кстати а зачем ты используеш DBComboBox? (до меня поздно дошло но лутше это чем никогда).
по твоим словам "это значение вставляется в SQL-запрос" ? так. а DBComboBox используют для изменений в таблицах, если значения поля заранее известны то лутше выбрать вариант чем набивать по новой. именно этого тебе похоже не нужно раз значение используется для составления запроса. используй простой ComboBox и все. во всяком случае не будет неопределенностей. или я опять чегото недогоняю?
sniknik (2002-05-11 18:18:00) [3]а свойства
DBComboBox1.DataSource:= DataSource1;
DBComboBox1.DataField:= "AutCode";
определены? и таблица связанная с DataSource1 открыта? если одно из них убрать или таблица неоткрыта и у меня событие не происходит. потому как ему вроде нечего делать.
Timka (2002-05-11 18:04:00) [4]похоже, всё так. только не работает. пока стоял стиль csDropDown, вообще в окошке ничего не менялось при выборе. поставил csDropDownList, текст в самом окошечке начал меняться. Но событие при этом не наступает. Даже через отладчик.
заполнил через DBComboBox1.Items.Add(), результат тот же.
sniknik (2002-05-11 16:51:00) [5]Да его нет, я не проверил. А сейчас сымитировал ситуацию и у меня событие OnChange происходит и при выборе и при изменении. Давай сравнивать.
1. определил событие DBComboBox1.onChange просто выдает сообщение (MessageDlg(.....))
2. заполнил DBComboBox1.Items всякой дрянью (у тебя названия полей)
3. DBComboBox1.DataSource:= DataSource1;
4. DBComboBox1.DataField:= "AutCode"; это я левую таблицу взял, ее поле.
5. выбираю любое значение из DBComboBox1 и происходит событие выдается сообщение по MessageDlg и меняется текущее поле определенное в DBComboBox1.DataField. Т.е. все что положено делается.
а у тебя не так? или не то имел в виду?
Timka (2002-05-11 16:20:00) [6]дело в том, что у TDBCombobox нет такого свойства.... по крайней мере мой инспектор его не видит
sniknik (2002-05-11 11:58:00) [7]добавь то же на onSelect