Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.28;
Скачать: CL | DM;

Вниз

TListItem   Найти похожие ветки 

 
Tonich ©   (2005-08-09 16:09) [0]

Ща попробую объяснить чего мне надо)))

создаю

TLVIntemInfo = record
 PageNumber:Integer;
 SubPageNUmber:Integer;
end;

и указатель на него

PLVIntemInfo =^TLVIntemInfo;

потом начить так


ListItem:TListItem;
SubTransList: TsListView;
Itemdata:PLVIntemInfo

New(Itemdata); // может надо в цикл внести
while not Money_MD.Eof  do
begin
ListItem := SubTransList.Items.Add;
Itemdata - ну тут заполняем
ListItem.Data := Pointer(Itemdata); //
ListItem.Caption := "bla bla bla";
Money_MD.Next;
end;

Dispose(Itemdata); // может надо в цикл внести


а когда уже кликаю на ListView и пытаюсь прочитать Data

New(Itemdata);
Itemdata := PLVIntemInfo(ListView.Selected.data)
Dispose(Itemdata);

читает какуето херню...

может кто просветит, что не правильно а?


 
Ega23 ©   (2005-08-09 16:13) [1]

New(Itemdata);
Зачем?


 
Tonich ©   (2005-08-09 16:14) [2]


> Ega23 ©   (09.08.05 16:13) [1]

как зачем , для распределения структуры в куче, я указатель создал и использую его


 
Гаврила ©   (2005-08-09 16:22) [3]

while not Money_MD.Eof  do
begin
ListItem := SubTransList.Items.Add;
New(Itemdata); // может надо в цикл внести
Itemdata - ну тут заполняем
ListItem.Data := Pointer(Itemdata); //
ListItem.Caption := "bla bla bla";
Money_MD.Next;
end;


> а когда уже кликаю на ListView и пытаюсь прочитать Data


//New(Itemdata);
Itemdata := PLVIntemInfo(ListView.Selected.data)
//Dispose(Itemdata);

Dispose вызывать при удалении итема ил ListView


 
Tonich ©   (2005-08-09 16:24) [4]


> Гаврила ©   (09.08.05 16:22) [3]


это код


>
> New(Itemdata);
> Itemdata := PLVIntemInfo(ListView.Selected.data)
> Dispose(Itemdata);


написан в другой процедуре


 
Гаврила ©   (2005-08-09 16:28) [5]


>  [4] Tonich ©


Полная каша.
Короче

> это код

> New(Itemdata);
Выделяем 8 байт в куче и запоминаем указатель в Itemdata
> Itemdata := PLVIntemInfo(ListView.Selected.data)
переприсваиваем указатель на то ,что было в  ListView.Selected.data
(выделенный только что блок потерян)
> Dispose(Itemdata);
освобождаем блок ,указатель на который находился до этого в ListView.Selected.data

все должно валиться с треском при нескольких обращениях


 
Tonich ©   (2005-08-09 16:33) [6]

а понял что ты имел ввиду)))

начить после

> Itemdata := PLVIntemInfo(ListView.Selected.data)

анализирую полученные данные, после чего мне уже этот указатель не нужет и после Dispose(Itemdata);

или я опять не понял чего  ты хотел сказать..


 
Tonich ©   (2005-08-09 16:43) [7]


> Гаврила ©  

)))))) все просветили)))
ты таки был прав насчет

> Dispose вызывать при удалении итема ил ListView


 
begin...end ©   (2005-08-09 17:01) [8]

> Tonich ©   (09.08.05 16:09)

> TLVIntemInfo = record
>  PageNumber:Integer;
>  SubPageNUmber:Integer;
> end

PageNumber и SubPageNumber могут в каком диапазоне изменяться? А то ведь, если это небольшие числа, можно и без всяких New/Dispose обойтись.


 
Tonich ©   (2005-08-09 17:07) [9]


> begin...end ©   (09.08.05 17:01) [8]

не ну это понятно если если смотреть на то что я написал)))

но вот написал я не все, в том рекорде вероятнее всего будут  еще стринговые поля
и еще точно одно поле (число записей в memory dataset), а вот сколько там будет записей только одному пользователю и извесно

а вообщето.....
нодо подумать пасибочки


 
begin...end ©   (2005-08-09 17:13) [10]

> Tonich ©   (09.08.05 17:07) [9]

> но вот написал я не все, в том рекорде вероятнее всего будут
> еще стринговые поля

Ну тогда только New/Dispose.



Страницы: 1 вся ветка

Текущий архив: 2005.08.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
4-1120733513
vecna
2005-07-07 14:51
2005.08.28
TEdit + PopupMenu


5-1094974226
FHT
2004-09-12 11:30
2005.08.28
Работа при срабатывании OnCustomDrawItem в своем компаненте


9-1115369239
Slavikk
2005-05-06 12:47
2005.08.28
Lod в GLScene


1-1123428673
Eraser
2005-08-07 19:31
2005.08.28
Ошибка в коде. Порча данных


1-1123482149
leonidus
2005-08-08 10:22
2005.08.28
Быстрый алгоритм удаления одинаковыз записей