Главная страница
    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.01 c
7-78159
Still Swamp
2003-05-12 20:36
2003.07.24
Проблема с RS232


1-77966
Incha
2003-07-10 19:01
2003.07.24
Переход к концу TRichEdit (FAQ уже читала :) )+


1-77926
acsoft
2003-07-04 08:54
2003.07.24
---|Ветка была без названия|---


1-77827
VID
2003-07-11 16:38
2003.07.24
Выделенный текст в RichEdit(RxRichEdit)


1-77991
rotor
2003-07-11 13:50
2003.07.24
Tree+CheckBox возможно ли это???





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