Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.24;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
14-78086
Кен
2003-07-08 01:55
2003.07.24
Ещё раз по поводу стека. ( Любителей ругани просьба не заходить )


3-77801
chexum
2003-07-02 15:53
2003.07.24
Обработка ошибок ADO


1-77941
olookin
2003-07-10 16:50
2003.07.24
вызов из DLL


1-77982
lex7
2003-07-11 11:18
2003.07.24
Цвет MainMenu


14-78122
_0$a_
2003-07-06 00:38
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский