Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c