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

Вниз

Уничтожение массива из списков   Найти похожие ветки 

 
R   (2003-07-11 07:38) [0]

procedure TForm1.Button1Click(Sender: TObject);
var
SL:array of TStringList;
I:Integer;
begin
SetLength(SL,3);
For I:=0 To 2 Do
begin
SL[I]:=TStringList.Create;
SL[I].Add(IntToStr(I));
Memo1.Lines.Add(SL[I].Text);
end;
SL:=nil; //Вопрос такой корректное ли это уничтожение массива из TStringList
//или надо каждый список уничтожать чепрез Free, как правильно уничтожить массив

end;


 
Digitman   (2003-07-11 08:50) [1]


> или надо каждый список уничтожать чепрез Free


да, надо.


 
Skier   (2003-07-11 08:55) [2]


> или надо каждый список уничтожать чепрез Free,

Обязательно ! И только так !
А через SL:=nil; ты освобождаешь только лишь память выделенную под дин. массив 3*SizeOf(Pointer) байт.

Пару советов :
1) SL:=nil; Писать не обязательно. Компилятор при выходе из метода освободит дин. массив сам (но (sic !) не освободит память выделенную под экз-ры TStringList)
2) вместо For I:=0 To 2 Do лучше писать
For I:=Low(SL) To High(SL) Do


 
R   (2003-07-11 09:11) [3]

Спасибо Мастера еще один вопрос назрел
Я хочу в процедуру смены свойств компанента имеющую
такую запись procedure SetX(Val:array of String) передавать массив из строк, но когда записываю свойство через которое передается данный масив в компанент компилятор дает ошибку
свойство пишу так
property X: array of String write SetX ;


 
Skier   (2003-07-11 09:15) [4]

type
TStringArray = array of String;

property X: TStringArray write SetX ;

Не выручит ?



 
Alex_***   (2003-07-11 09:19) [5]

Нельзя массивы как св-ва передавать. А по поводу дин. массива объектов, то удобне пользовать TObjectList - он сам разрушит объекты в своем списке


 
Skier   (2003-07-11 09:20) [6]

Но судя по всему (???) тебе нужно индексированное св-во
property YourStrings[Index : Ineger] : String;...
Нет ?


 
R   (2003-07-11 09:22) [7]

А в какой секции(месте) компанента прописывать
type
TStringArray = array of String;



 
R   (2003-07-11 09:27) [8]

>Skier © (11.07.03 09:20)
Да свойство нужно индексированное


 
Nucl   (2003-07-11 09:30) [9]

ё а если сначала SetLength(SL,0)
а потом SL:=nil


 
Skier   (2003-07-11 09:32) [10]

>R (11.07.03 09:27)
Тогда лучше так

1) property X[Index : Ineger] : String read GetX write SetX
2) и использовать не дин. массив а TStringList


>Nucl © (11.07.03 09:30)
?!


 
R   (2003-07-11 09:34) [11]

To >Skier ©
Как идексированное свойство передать в процедуру смены
SetX(......здесь как записать )
To >Nucl © (11.07.03 09:30)
Я так раньше и делал но Мастера говорят надо всеравно через Free


 
Skier   (2003-07-11 09:38) [12]

> (11.07.03 09:34)

procedure SetX(const Value : Integer);
begin
if "проверка Value" then begin
//
end //if
else begin
//
end; //else
end;


 
R   (2003-07-11 09:42) [13]

Всем спасибо, отдельно Skier ©


 
ЮЮ   (2003-07-11 09:42) [14]

>Skier © (11.07.03 09:38)
А где Index?
>R (11.07.03 09:34)
В контектном меню выбери "Complete class at cursor" и будешь поражён, как много за тебя сделает Delphi :-)


 
Skier   (2003-07-11 09:43) [15]

>ЮЮ © (11.07.03 09:42)
Не понял ?


 
Skier   (2003-07-11 09:46) [16]

>ЮЮ © (11.07.03 09:42)
Да ! Точно ! Перепутал терминологию...
Такие свойства называются array properties


 
R   (2003-07-11 09:54) [17]

Имеется в виду что?



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

Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.008 c
1-77844
Cr@zy-EyE
2003-07-12 17:54
2003.07.24
Invalid Pointer Operation


1-77886
Micke
2003-07-11 21:49
2003.07.24
Обход защиты запуска второй копии


9-77708
BANick
2003-01-27 20:14
2003.07.24
Opengl. Помогите с прозрачностью


1-77891
lex7
2003-07-14 10:39
2003.07.24
Как послать сообщение TLabel?


14-78109
Lika
2003-07-08 13:03
2003.07.24
Срочно! Пожалуйста помогите!





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