Главная страница
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.017 c
14-82399
Alex134
2003-09-02 19:42
2003.09.25
Как стать программистом?


7-82516
Alibaba
2003-07-01 12:00
2003.09.25
Word


1-82329
MVova
2003-09-12 17:16
2003.09.25
MMC


1-82312
APTEMKA
2003-09-13 03:20
2003.09.25
Громкость звука


1-82207
olego
2003-09-15 10:12
2003.09.25
где увидеть компютеры подклученные через DCOM ?