Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Очищать ли список?   Найти похожие ветки 

 
Студент_1234   (2012-07-13 20:24) [0]



procedure AddList(List: TList);
var
 PInfo: PDIDeviceInstance;
begin
 New(PInfo);
 List.Add(PInfo);
end;

procedure CleanupList(List: TList);
var
 i: LongInt;
begin
 For i:= 0 to List.Count - 1 do
   Dispose(List[i]);
end;

var
 List: TList;
begin
   List:= TList.Create;
   try
     AddList(List); // n-е кол-во раз.
   finally
     CleanupList(List); // *
     List.Free;
   end;



* - Вызывать ли эту функцию для очистки списка?


 
DayGaik   (2012-07-13 20:34) [1]

Да.

Кстати твой код нерабочий.
Надо так:
Dispose(PDIDeviceInstance(List[i]));

А вообще для этих дел лучше наслодовать TList


 
RWolf ©   (2012-07-13 21:04) [2]

Нормальный код, процедуре Dispose не интересен тип указателя.


 
Дмитрий С ©   (2012-07-13 21:54) [3]


> RWolf ©   (13.07.12 21:04) [2]

Вы неправы.

program Project5;

{$APPTYPE CONSOLE}

type
 PSomeRecord = ^TSomeRecord;
 TSomeRecord = record
   Value: String;
 end;

 procedure Test;
 var
   TypedPtr: PSomeRecord;
   UntypedPtr: Pointer;
 begin
   New(TypedPtr);
   TypedPtr^.Value := "Foo";
   UntypedPtr := TypedPtr;
   Dispose(UntypedPtr);
 end;
begin
 ReportMemoryLeaksOnShutdown := True;
 Test;
end.


 
RWolf ©   (2012-07-13 23:49) [4]


> [3]

да, верно — Finalize при освобождениии памяти через бестиповый указатель не вызывается.


 
Студент_1234   (2012-07-14 08:57) [5]

Т.е. получается CleanupList нужно вызывать, + при этом указывая тип указателя?


procedure CleanupList(List: TList);
var
i: LongInt;
begin
For i:= 0 to List.Count - 1 do
  Dispose(PDIDeviceInstance(List[i]));
end;


 
Дмитрий С ©   (2012-07-14 14:19) [6]


> Студент_1234   (14.07.12 08:57) [5]

Да.


 
Куку   (2012-07-14 18:10) [7]

~
System.Generics.Collections.TObjectList<TDIDeviceInstance>



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

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.08 c
15-1346704137
Rouse_
2012-09-04 00:28
2013.03.22
Ну собственно хвалюсь :)


15-1335990605
Юрий
2012-05-03 00:30
2013.03.22
С днем рождения ! 3 мая 2012 четверг


15-1334758815
аноним
2012-04-18 18:20
2013.03.22
Посоветуйте смартфончик


2-1329076090
dis12345
2012-02-12 23:48
2013.03.22
checkbox в stringgrid


2-1330431730
Drowsy
2012-02-28 16:22
2013.03.22
Не показывается модальная форма.





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