Главная страница
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
Время: 0.168 c
15-1329492368
поверфулл
2012-02-17 19:26
2013.03.22
Подскажите путевый учебник по HTML


11-1245312300
QAZ
2009-06-18 12:05
2013.03.22
Applet


15-1349970338
Edgar_Wine
2012-10-11 19:45
2013.03.22
Помогите найти TPNGImage последний (!) релиз.


15-1339518297
Artem
2012-06-12 20:24
2013.03.22
Что лучше Android или Windows Mobile?


15-1347821674
Dmitry375
2012-09-16 22:54
2013.03.22
Running Delphi on Mac OS X