Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > 2 значения 1-го элемента listbox


Автор: Kbl4AH 16.1.2009, 15:41
Здравствуйте.
Мне нужно чтобы для итемов листбокса хранился еще и некий флаг, который не видим пользователю.
Как это лучше реализовать?
Я только так смог придумать:
Код

var
I: Integer;
OP1, OP2: TStringList;
begin
  OP1 := TStringList.Create;
  OP2 := TStringList.Create;
  OP1.Text := '1';
  OP2.Text := '2';
  for I := 0 to 20 do
    if random(20) < 10 then
      ListBox1.AddItem(IntToStr(I), OP1)
    else
      ListBox1.AddItem(IntToStr(I), OP2);
// обращение
  if (ListBox1.Items.Objects[ListBox1.ItemIndex] as TStringList).Strings[0] = '1' then
    begin
// действие 1
    end
  else
    begin
// действие 2
    end;

Как-то горбато получилось(((
Посоветуйте, как сделать лучше?

Автор: Frees 16.1.2009, 15:47

добавляй какойнить record  там ихрани все что хочеш

Автор: THandle 16.1.2009, 15:57
Цитата(Kbl4AH @  16.1.2009,  15:41 Найти цитируемый пост)
var
I: Integer;
OP1, OP2: TStringList;
begin
  OP1 := TStringList.Create;
  OP2 := TStringList.Create;
  OP1.Text := '1';
  OP2.Text := '2';
  for I := 0 to 20 do
    if random(20) < 10 then
      ListBox1.AddItem(IntToStr(I), OP1)
    else
      ListBox1.AddItem(IntToStr(I), OP2);



Код


var
  I: Integer;
begin
  for i := 0 to  20 do
    ListBox1.Items.AddObject(IntToStr(I), TObject(Integer(Random(20) > 10) + 1));


Цитата(Kbl4AH @  16.1.2009,  15:41 Найти цитируемый пост)
  if (ListBox1.Items.Objects[ListBox1.ItemIndex] as TStringList).Strings[0] = '1' then


Код

    if Integer(ListBox1.Items.Objects[ListBox1.ItemIndex]) = 1 then


Автор: Kbl4AH 16.1.2009, 16:25
THandle, Frees, спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)