![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ComboBox и дополнительное поле [D7, XP]
TRSteep © (2009-12-14 13:45:00)В ComboBox вносятся текстовые поля, у каждого поля есть дополнительный цифровой параметр.
Есть ли какие то стандартные методы хранения этого поля?
Например
2 Поле
4 Лес
7 Поляна
9 Лес
Т.е. текстовые поля могут повторятся.
Пока в голову приходит мысль только создать 2 динамических массива
и заносить и выбирать поле в combobox по порядковой позиции в массиве
TRSteep (2009-12-18 11:02:00) [1]
> Почему 2?
> Почему по порядковой?
2 потому что первый содержит ID, второй под тем же порядковым номером String
реализвать проще чем один с двумя вложенными.
> И самым простым оказался путь через OwnerDraw
Не знаю даже что это :)
а вообще задача решилась благодаря первому примеру:
ввод
ZQuery.SQL.Text := 'SELECT * FROM ' + ZConnection.Database + '.Member';
ZQuery.Open;
cbb_Contact.Items.Clear;
while not ZQuery.eof do
begin
cbb_Contact.items.AddObject(ZQuery.fieldbyname('Member_Surname').AsString,
Pointer( ZQuery.fieldbyname('Member_ID').AsInteger ));
ZQuery.next;
end;
ZQuery.SQL.Clear;
ZQuery.Close;
и вывод:
Integer(cbb_Contact.Items.Objects[cbb_Contact.itemindex])
KilkennyCat (2009-12-15 08:53:00) [2]хранение через OwnerDraw? Как прекрасен и удивителен этот мир, полный любви т. д....
Германн (2009-12-15 00:41:00) [3]
> Leonid Troyanovsky © (14.12.09 22:02) [5]
Как-то мне нужно было хранить в TCheckListBox помимо самих строк ещё и 3 числа. Я бы пошел через использование Objects, но была задача иметь возможность сортировки строк по значениям этих чисел. И самым простым оказался путь через OwnerDraw.
Leonid Troyanovsky (2009-12-14 22:02:00) [4]
> TRSteep © (14.12.09 13:45)
> В ComboBox вносятся текстовые поля, у каждого поля есть
> дополнительный цифровой параметр.
> Есть ли какие то стандартные методы хранения этого поля?
Цифровой vs аналоговый?
Хотя, в любом случае, стандартных нет.
Однако, для любых случаев полезен стиль csOwnerDraw*&etc.
> Пока в голову приходит мысль только создать 2 динамических
> массива
> и заносить и выбирать поле в combobox по порядковой позиции
> в массиве
Почему 2?
Почему по порядковой?
> Не нашел примера в справке.
А он и не спасет ОРД, если исходная постановка верна.
--
Regards, LVT.
TRSTeep (2009-12-14 14:12:00) [5]о! пока искал уже написали пример - спасибо!
TRSTeep (2009-12-14 14:11:00) [6]Я так понимаю ComboBox.Items.Objects, а как его использовать?
Не нашел примера в справке.
RWolf (2009-12-14 13:52:00) [7]пример:
ComboBox1.AddObject('строка',Pointer(42));
ShowMesage(IntToStr(Integer(ComboBox1.Items.Objects[0])));
RWolf (2009-12-14 13:49:00) [8]Objects[]