Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ListBox.Item и Объект [D7, WinXP]


tytus ©   (2005-01-27 10:54:00) 

Добрый день господа. Подскажите как правильно отыскать итемы листбокса по объекту и удалить их (итемы и объекты).
type
  PAtsObj=^TAtsObj;
  TAtsObj=record
  AN:string;
  end;
далее в обработчике клика по чекбоксу пишу:
var
 AtsObj:PAtsObj;
begin
if CB1.Checked then
begin
 New(AtsObj);
  AtsObj^.AN:='746';
...
for i:=0 to TGLst.Count-1 do
 LB1.AddItem(TGLst.Strings[i],TObject(AtsObj));
все нормально работает.//LB1-ListBox;CB1-CheckBox;
А теперь когда чекбокс не отмечен нужно найти все итемы в листбоксе по объекту и удалить их.
end else
begin
n:=LB1.Items.IndexOfObject(TObkect(AtsObj));
LB1.Items.Delete(n);//???
end;


MetalFan   (2005-01-27 11:17:00) [1]

может в данном случае
> PAtsObj=^TAtsObj;
>   TAtsObj=record
>   AN:string;
>   end;

PChar прокатит?


ЮЮ   (2005-01-27 11:11:00) [2]


idx := LB1.Items.IndexOfObject(TObject(AtsObj));
if (idx > - 1) then begin
 Dispose( PAtsObj(LB1.Items.Objects[idx]))
 LB1.Items.Delete(idx);  end;
end;


KSergey   (2005-01-27 11:09:00) [3]

> найти все итемы в листбоксе по объекту и удалить их.

Что в вашем понимании "по объекту"?

> [1] TUser ©   (27.01.05 11:04)
> type
>  TAtsObj=class

А это не черезчур?


TUser   (2005-01-27 11:04:00) [4]

type
 TAtsObj=class


Наверх

Титульная страница Поиск, карта сайта Написать письмо