Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];

Вниз

Расширенный компонент ComboBox   Найти похожие ветки 

 
victor_ch   (2003-09-14 08:52) [0]

Добрый день всем!!!
Мне нужно решить следующую задачу, чтобы выпадающий список состоял из двух колонок, т.е например
1 |Аэоропорт
2 |Вокзал
3 |Метро
но при выборе какого либо пункта, в текстовом поле оставалось только значение первой колонки, можно ли несложным способом добиться такого поведения от стандартного ComboBox, или есть уже готовый (бесплатный) компонент с такой возможностью. Я уже видел в одной программе такой выпадающий список (такие же списки используются в MS Access для полей подстановки), но сам реализовать не могу


 
MBo   (2003-09-14 08:57) [1]

У TStrings (Comb.Items) есть свойство Objects - вот там храни указатель на соотв. строку второй колонки и в OnDrawItem дописывай её. Можно и не хранить, а брать из другого списка согласно номеру Item-а


 
victor_ch   (2003-09-14 09:15) [2]

а немного поподробнее, можно
а то что то у меня не получается


 
Думкин   (2003-09-14 09:17) [3]


> [2] victor_ch (14.09.03 09:15)

Ключевая фраза - OnDrawItem


 
victor_ch   (2003-09-14 09:40) [4]

отобразить в две колонки у меня получилось
но вот при выборе какого либо пункта в текстовом поле высвечивается тоже два значения, а не первое


 
MBo   (2003-09-14 09:50) [5]

SList: TStringList;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var i:Integer;
begin
SList:=TStringList.Create;
for i:=0 to 3 do begin
combobox1.Items.Add(Inttostr(i));
SList.Add(StringOfChar(Chr(i+Ord("A")),5));
end;
end;

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
ComboBox1.Canvas.FillRect(Rect);
ComboBox1.Canvas.TextOut(Rect.Left+2,Rect.Top+2,ComboBox1.Items[Index]);
if not (odComboBoxEdit in State) then
ComboBox1.Canvas.TextOut(Rect.Left+50,Rect.Top+2,SList[Index]);
end;


 
victor_ch   (2003-09-14 09:55) [6]

спасибо большое за помощь
теперь все понятно



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
1-82228
DROZD
2003-09-11 09:03
2003.09.25
Морфология руского


3-82116
Max_
2003-09-04 12:45
2003.09.25
Экспорт данных в Excel


7-82518
Шустрый
2003-07-12 07:35
2003.09.25
Мой exe шник на чужом винте


3-82150
Юра
2003-09-03 16:06
2003.09.25
Как сделать запрос к двум базам?


6-82362
borg
2003-07-28 07:47
2003.09.25
компонент NMsmtp





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