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

Вниз

Расширенный компонент 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.032 c
14-82394
Vlad Oshin
2003-09-04 17:50
2003.09.25
Флейм. Сигареты легкие или тяжелые?


14-82468
cyborg
2003-09-06 20:38
2003.09.25
Assembler - NOT с регистром


3-82073
Centurion
2003-09-05 14:29
2003.09.25
Ошибка БД


1-82286
BustaBoss
2003-09-15 04:13
2003.09.25
Ini файлы


14-82470
СуперТупик
2003-09-06 16:48
2003.09.25
Вирус