Главная страница
    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-77835
SergeyVP
2003-07-11 15:45
2003.07.24
Как узнать видим компонент или нет?


1-77903
SVN17
2003-07-11 15:18
2003.07.24
Обработчик сообщений


14-78066
Дмитрий К.К.
2003-06-30 06:12
2003.07.24
Именинники 30 июня


6-78029
Fast
2003-05-19 12:52
2003.07.24
RAS & Ping


3-77788
Veles
2003-07-02 14:17
2003.07.24
ГДЕ ?? !!! dbclient.dll





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