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

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

TStringList [D7, WinXP]


ККК ©   (2004-11-27 13:51:00) 

Почему когда я пишу код
var
Pr:TStringList;
begin
Pr.Create;

Pr.Free;
end;

у меня выдаётся ошибка,
а когда пишу вот так

var
Pr:TStringList;
begin
Pr:=TStringList.Create;

Pr.Free;
end;
ошибки не выдаётся, а ведь код практически один и то же только написан по разному.


Anatoly Podgoretsky   (2004-11-27 14:15:00) [1]

Потому что
begin
Pr.Create;
не инициализировано, вот после
Pr:=TStringList.Create;
уже можно делать
Pr.Create;


ККК   (2004-11-27 14:00:00) [2]

Gero © понял спасибо


Gero   (2004-11-27 13:59:00) [3]


> а ведь код практически один и то же только написан по разному.

Нет, код не один и тот же.
А ошибка выдается в первом случае потому что ты делаешь Pr.Create, а Pr у тебя-то равно nil.
То есть по сути ты вызываешь метод еще не существующего объекта.
А во втором случае ты создаешь в памяти объект TStringList, и ассоциируешь его с переменной Pr.


KilkennyCat   (2004-11-27 13:56:00) [4]

а в ошибке разве не сказано?


Наверх

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