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

Вниз

Вопрос по выпадающему списку   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 1.566 c
15-1329157948
StudentGuse
2012-02-13 22:32
2013.03.22
Скрытая авторизация в контакте?


15-1334349002
Юрий
2012-04-14 00:30
2013.03.22
С днем рождения ! 14 апреля 2012 суббота


4-1259658224
sniknik
2009-12-01 12:03
2013.03.22
Получить список групп текущего юзера/общий


15-1336768202
Юрий
2012-05-12 00:30
2013.03.22
С днем рождения ! 12 мая 2012 суббота


15-1344643133
wl
2012-08-11 03:58
2013.03.22
творение? потом...