![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хранение Integer в Combobox [D6, Win2k]
Влад Утюмов © (2002-09-27 07:55:00)Подскажите новичку, плз наиболее прямой способ решения задачи.
Есть комбобокс на форме. В нем, кроме строк, хочется хранить целочисленные значения (ключи таблицы в БД, но это не важно). Из документации выясняю, что есть
AddItem(Item: String, AObject: TObject)
Вроде то что надо. То что Integer это не TObject - не беда, полминуты - готова обертка вокруг Integer, унаследованная от TObject
И тут натыкаюсь на то, что TStrings не владеет обжектами, что их надо самому удалять. А чтобы самому удалять, надо их еще где-то хранить, и получается уже бред.
Лезут в голову разные мысли, типа поменять поведение TComboBox путем наследования или складывать ссылки на обжекты в отдельную корзину, а потом вытряыхивать разом, или хранить ключи вообще отдельно, в массиве каком-нибудь.
Но думается, что у такой тривиальной и распространенной, ИМХО, задачи не должно быть сложного и уродливого решения. Душа желает простоты.
Влад.
MBo (2002-09-27 09:50:00) [21]>что integer не станет снова каким-то Smallint или Int64
Почему он должен ими стать????
kronprince (2002-09-27 09:49:00) [22]2MBo © (27.09.02 08:34)
Можно и так если быть увереннным что integer не станет снова каким-то Smallint или Int64
Я для этих целей сделал объект TDictionary, если хош скину
MBo (2002-09-27 08:34:00) [23]ComboBox1.Items.AddObject(AString,Pointer(AInteger));
j:=Integer(ComboBox1.Items.Objects[i]);
Ничего в этом случае выделять не надо, Integer как раз помещается в 4 байтах, уже имеющихся под указатель
Song (2002-09-27 08:33:00) [24]Всю ифнормацию можете хранить в этих же строках. Однако рисовать итемы самому не выводя эту служебную информацию.
Separator (2002-09-27 08:20:00) [25]ComboBox1.Items.Add(IntToStr(N)); {N: integer}
N:= StrToInt(ComboBox1.Items.Strings[i]); {но тока если в i-той ячейке храниться число, иначе ошибка}
sask (2002-09-27 08:15:00) [26]IntToStr и StrToInt...