Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TStrings [D6]


AndreyAG ©   (2002-10-29 09:57:00) 

Уважаемые мастера вот код:

var
MyStrings:array of TStrings;
begin
SetLength(MyStrings,2);
MyStrings[0].Add("First");
end;


В RunTime ошибка. Что не так!
Зараннее благодарен!


VaS   (2002-10-29 14:42:00) [1]

Это обнуление указателя, для исключения обращения по нему после освобождения памяти (для локальной переменной - до конца процедуры).


KSergey   (2002-10-29 13:59:00) [2]

> MyStrings := nil;

Кто объяснит мне темному - зачем?! Как только выйдет из области видимости (переменная) - все и освободиться.
Или я сильно заблуждаюсь? (то, что иногда нужно принудительно освободить - это понятно)


VaS   (2002-10-29 12:54:00) [3]

...особенно если учесть возможность SetLength() по ходу дела.


Anatoly Podgoretsky   (2002-10-29 10:58:00) [4]

Особенно второй, это самое то


Юрий Зотов   (2002-10-29 10:51:00) [5]

Кстати, забыл - не проще ли вместо массива использовать TList или даже TObjectList? Советую рассмотреть эти варианты.


Юрий Зотов   (2002-10-29 10:47:00) [6]

И на самый последок:
MyStrings := nil;


VaS   (2002-10-29 10:43:00) [7]

Ну и напоследок:


for i:=Low(MyStrings) to High(MyStrings) do
MyStrings[i].Free;


AndreyAG   (2002-10-29 10:07:00) [8]

MBo и Юрий Зотов , Огромное спасибо.


Юрий Зотов   (2002-10-29 10:05:00) [9]

Расшифровываю
:о)

var
MyStrings: array of TStrings;
begin
SetLength(MyStrings, 2);
MyStrings[0] := TStringList.Create;
MyStrings[0].Add("First");
end;


MBo   (2002-10-29 09:59:00) [10]

1) перед использование объекты необходимо СОЗДАВАТЬ
2) создавать нужно объекты не абстрактного типа TStrings, а TStringList


Наверх

Титульная страница Поиск, карта сайта Написать письмо