![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Позиционирование в Combobox по значению объекта [D7]
Laguna © (2011-09-22 15:27:00)Нужно в контрольной работе написать кусок кода, в котором в Combobox в качестве объекта добавлена запись с данными. И в зависимости от подаваемого значения позиционировать на конкретную строку. Для начала вариант первый:
...
ComboBox1.Items.AddObject('Item 1', Pointer(1));
ComboBox1.Items.AddObject('Item 2', Pointer(2));
ComboBox1.Items.AddObject('Item 3', Pointer(3));
....
ComboBox1.ItemIndex := ComboBox1.Items.IndexOfObject(Pointer(k));
// где к - будет указан во входном параметре процедуры(будет 1, 2 или 3)
Здесь все понятно. Непонятна ситуация, когда нужно позицианировать, если сохранялась запись со значениями. Вариант второй:
...
type
PComboRec = ^TComboRec;
TComboRec = record
Kod : Longword;
Poz : Longword;
St : String[5];
end;
...
Var
pRec: PComboRec;
begin
new(pRec);
pRec^.ID := 1;
pRec^.Poz := 11;
pRec^.St := 'Бла-Бла-Бла';
RegComboBox.Items.AddObject('Item 1', Pointer(pRec));
new(pRec);
pRec^.ID := 2;
pRec^.Poz := 12;
pRec^.St := 'Бла-Бла-Бла';
RegComboBox.Items.AddObject('Item 2', Pointer(pRec));
new(pRec);
pRec^.ID := 3;
pRec^.Poz := 13;
pRec^.St := 'Бла-Бла-Бла';
RegComboBox.Items.AddObject('Item 3', Pointer(pRec));
end;
Как применить функцию позиционирования по полю Poz, к примеру, если на входе процедуры подавать некоторые значения
Подойдет ли конструкция ComboBox1.ItemIndex := ComboBox1.Items.IndexOfObject(...)в данном случае или нужно как то по другому?
sniknik (2011-09-22 20:22:00) [21]указатель лишний... вместо record-а класс/обьект, вместо new create ... будет проще.
ProgRAMmer Dimonych (2011-09-22 15:36:00) [22]Не поможет: указатель на структуру будет отличаться от того, с которым её добавляли в список. А поскольку контрол ничего не знает о структуре, на которую ссылается указатель (в т.ч. и её размера), сравнить он её не сможет. Следовательно, надо пробегать по всем элементам самостоятельно и искать подходящий.