Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизВопрос по выпадающему списку Найти похожие ветки
← →
TSubject (2012-04-02 09:45) [0]Здравствуйте.
Если в ComboBox загружены объекты, которые состоят из нескольких полей. Например
TPerson = class(TObject)
ID : String;
FName : String;
LName : String;
end;
А в самом списке я отображаю например FName, когда пользователь выберет из списка определенное имя, то в тексте уже нужно отображать например ID. Подскажите пожалуйста как это реализовать. Пробовал обрабатывать OnChange, не дало результата. Может где то нужно переопределять свойство или есть какой то стандартный метод? Спасибо.
← →
begin...end © (2012-04-02 09:51) [1]OnSelect ?
← →
TSubject (2012-04-02 09:59) [2]Загвоздка в том, что сменить ItemIndex я могу, а текст менять на другой не получается.
← →
begin...end © (2012-04-02 10:08) [3]> TSubject (02.04.12 09:59) [2]
Не понял. Обработчик OnSelect выполнится, когда "пользователь выберет из списка определенное имя". Где нужно отобразить соответствующий ID в ответ на это? И в чём именно проблема?
← →
TSubject (2012-04-02 10:12) [4]
> Не понял. Обработчик OnSelect выполнится, когда "пользователь
> выберет из списка определенное имя". Где нужно отобразить
> соответствующий ID в ответ на это? И в чём именно проблема?
>
Отобразить необходимо в "Text" ComboBox-а .
Например Пользователь выбрал из списка наименование, и тут происходит:
cbPersons.Text := TPerson(cbPersons.Items.Objects[cbPersons.ItemIndex]).ID;
← →
begin...end © (2012-04-02 10:20) [5]> TSubject (02.04.12 10:12) [4]
> Отобразить необходимо в "Text" ComboBox-а .
Зачем? Может быть, лучше отображать Id в каком-нибудь Edit"е, расположенном рядом с ComboBox"ом? Как раз будет видно соответствие Name - Id. Если бы я выбирал что-то в списке, а в результате выбора мне в этом же контроле показывали бы что-то совсем другое (пусть и соответствующее), я бы удивился.
← →
TSubject (2012-04-02 10:25) [6]
> Зачем? Может быть, лучше отображать Id в каком-нибудь Edit"е,
> расположенном рядом с ComboBox"ом? Как раз будет видно
> соответствие Name - Id. Если бы я выбирал что-то в списке,
> а в результате выбора мне в этом же контроле показывали
> бы что-то совсем другое (пусть и соответствующее), я бы
> удивился.
Заказчик требует, что бы в списке отображалось "код и наименование" например: (1 - Петров, 2 - Аршавин) , при выборе элемента, что бы уже отображался код. При этом я сейчас делаю ширину ComboBox-а по размеру Кода, а размер элементов списка широким, что бы вмещало наименование.
← →
TSubject (2012-04-02 10:27) [7]Возможно здесь уже нужен какой ни будь MiltiColumnCombobox но хотелось бы попробовать с начала стандартным методом без использования внешних компонентов и написание своего собственного.
← →
icWasya © (2012-04-02 10:44) [8]Как вариант - использовать два компонента TEdit и TCombobox.
Combobox разместить под Edit-ом так, что бы торчала только кнопка.
В этот Edit и помещать нужный Вам текст. Может быть понадобится перехватывать некоторые нажатия кнопок в Edit-е
← →
Anatoly Podgoretsky © (2012-04-02 11:28) [9]TDBLookupControl поддерживает более одного поля
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.078 c