Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.063 c
15-1330423503
Loginov Dmitry
2012-02-28 14:05
2013.03.22
Парадоксы с фокусом (D2007)


15-1347179201
TUser
2012-09-09 12:26
2013.03.22
Уникальный астрономический кружок (Москва)


15-1352375486
Пользователь интернета
2012-11-08 15:51
2013.03.22
А я говорю, Delphi жив!


1-1301162465
Вячеслав
2011-03-26 21:01
2013.03.22
Интеграция апплета в подкатегории панели управления Windows 7


2-1331922008
PJiur
2012-03-16 22:20
2013.03.22
Что это - Constant expression expected?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский