Главная страница
    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.074 c
15-1341413403
Artem
2012-07-04 18:50
2013.03.22
mail.ru у вас открывается?


15-1342182880
DevilDevil
2012-07-13 16:34
2013.03.22
OpenMP vs Multithread


2-1332313764
Erwik1900
2012-03-21 11:09
2013.03.22
Объединение SQL запросов


15-1339316192
MastaK
2012-06-10 12:16
2013.03.22
Игра Sokoban


2-1334761862
Afrost
2012-04-18 19:11
2013.03.22
разделение массива на несколько других массив





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский