Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
11-1104783061
Rocket
2005-01-03 23:11
2005.08.28
ExecuteIORedirect


4-1121166012
ATarget
2005-07-12 15:00
2005.08.28
Работа с винтом


8-1112674690
DDDeN
2005-04-05 08:18
2005.08.28
BASS player


1-1123270317
Muller
2005-08-05 23:31
2005.08.28
Не открывается файл Reset ом


4-1120472561
Pearled
2005-07-04 14:22
2005.08.28
SID Well-known группы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский