Главная страница
    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.034 c
14-1123492515
WonderfulDay
2005-08-08 13:15
2005.08.28
Зажимание шифта


4-1120582829
q1w2e3
2005-07-05 21:00
2005.08.28
Фильтр ввода на API


14-1123057397
k2
2005-08-03 12:23
2005.08.28
Бухгалтерия и английский язык


1-1123520666
злобная танька
2005-08-08 21:04
2005.08.28
TThread


1-1123585722
rolex
2005-08-09 15:08
2005.08.28
Компонент для ввода IP адреса.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский