Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ComboBoxEh 
:(
    Опции темы
santilaas
Дата 28.5.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



Люди добрые, выручайте: ситуация следующая - на форме редактирования записи есть 3 поля DBEditEh и один ComboBoxEh. Заполняю эти 3 поля, перехожу на ComboBoxEh - и при открытии списка в нём появляются 2 значения, составленные из значений 3-х полей ввода.
К слову сказать ComboBoxEh связываю с DataSource-ом (в самой БД хранится числовое поле Field1, соответствующее ComboBox-у), KeyItems заполняю как 1,2.

На onButtonDown ComboBoxEh-а пишу:
Код

   Form1.ComboBoxEhView.Items.Clear;
   Form1.ComboBoxEhView.Items.Add(Form1.EditEhSurname.Text
     + ' ' + copy(Form1.EditEhName.Text,1,1)
     + '.' + copy(Form1.EditEhMiddleName.Text,1,1) + '.');
   Form1.ComboBoxEhView.Items.Add(Form1.EditEhSurname.Text
     + ' ' + copy(Form1.EditEhName.Text,1,1) + '.');  

   
И все бы ничего, только вот когда двойным кликом по записи открываю форму редактирования, в выпадающем списке уже должно стоять значение, соответствующее полю Field, и плюс так как по умолчанию у меня для Field1 стоит "1", то при открытии выпадающего списка (в случае добавления новой записи) там уже должна быть выбрана первая строка Items - но этого не происходит.
Что подскажете?   


--------------------
[
PM MAIL   Вверх
Alex
Дата 29.5.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



Конечно опять у вас полная каша, опять с db компонентом вы начинаете работать как с обычным.
У ComboBoxEh есть свойство ItemIndex которое при открытии у вас установлено в -1 для выбора первой записи должно стоять 0.
Но лучше бы вы описали, что вы хотите получить таким экстравагантным способои и что за данные вы храните в базе, и как они связаны с тремя вводимыми текстовыми полями 


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
santilaas
Дата 29.5.2006, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



В общем то каши нет: 
у меня в таблице хранятся Фамилия, Имя и Отчество, и поле (в предыдущей реплике я его обозвал как Field1),
по которому я смотрю какое будет представление ФИО: 
1 - Иванов И.И. (по умолчанию)
2 - Иванов И.
3 - Иванов Иван
4 - Иванов Иван Иванович
В DataSet-е я создал Calc-поле View, которое формирует ФИО в зависимости от значения поля Field
и отбражает его в DBGridEh-е.
На форме редактирования записи я для выбора представления ФИО и использую ComboBoxEh.
У него заполняю свойство KeyItems: 1,2,3,4 (в предыдущей реплике я писал: 1,2). И по сути надо всего-то и заполнить свойство Items! Если я заполняю его фиксированными значениями, то он конечно же работает так как мне нужно (если не считать что значения Items неизменны).
Но мне то нужно, чтобы он заполнялся на основе введённых данных (3 поля ввода(Фамилия, Имя, Отчество))
А по-поводу
Цитата

У ComboBoxEh есть свойство ItemIndex которое при открытии у вас установлено в -1 для выбора первой записи должно стоять 0
 - я пробовал и так сделать:
Код

   Form1.ComboBoxEhView.Items.Clear;
   Form1.ComboBoxEhView.Items.Strings[0]:= Form1.EditEhSurname.Text
     + ' ' + copy(Form1.EditEhName.Text,1,1)
     + '.' + copy(Form1.EditEhMiddleName.Text,1,1) + '.';
- но ... "List index out of bounds(0)"?
 


--------------------
[
PM MAIL   Вверх
Alex
Дата 29.5.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



Код

Form1.ComboBoxEhView.Items.Clear;
   Form1.ComboBoxEhView.Items.Add(Form1.EditEhSurname.Text
     + ' ' + copy(Form1.EditEhName.Text,1,1)
     + '.' + copy(Form1.EditEhMiddleName.Text,1,1) + '.');
   Form1.ComboBoxEhView.Items.Add(Form1.EditEhSurname.Text
     + ' ' + copy(Form1.EditEhName.Text,1,1) + '.');
Form1.ComboBoxEhView.ItemIndex:= 0;
 


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.