Форум: "Основная";
Текущий архив: 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