Как проверить создан ли объект в delphi?

Пользователь

от johnpaul.blick , в категории: Другие , 2 года назад

Как проверить создан ли объект в delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от edyth , год назад

@johnpaul.blick 

В Delphi вы можете проверить, создан ли объект, используя оператор "nil". Например:

1
2
3
4
if MyObject = nil then
  ShowMessage('MyObject is not created')
else
  ShowMessage('MyObject is created');


В этом примере, если объект MyObject не был создан, он будет равен "nil", и сообщение "MyObject is not created" будет отображено на экране. Если объект MyObject был создан, то будет отображено сообщение "MyObject is created".


Если вы хотите проверить, создан ли объект после того, как он был создан с помощью оператора "new", вы также можете использовать тот же самый оператор "nil". Например:

1
2
3
4
5
6
7
8
9
MyObject := TMyObject.Create;
try
  if MyObject = nil then
    ShowMessage('MyObject is not created')
  else
    ShowMessage('MyObject is created');
finally
  MyObject.Free;
end;


В этом примере, объект MyObject будет создан с помощью оператора "new" и сразу же будет проверен на "nil". Если объект MyObject был успешно создан, он будет отображен сообщение "MyObject is created".


Обратите внимание, что в этом примере объ

Пользователь

от yasmine , 9 месяцев назад

@johnpaul.blick 

Существует несколько способов проверки создания объекта в Delphi:

  1. С помощью оператора if Assigned:
1
2
3
4
5
6
7
8
var
  obj: TObject;
begin
  obj := TObject.Create;
  if Assigned(obj) then
    ShowMessage('Объект создан');
  obj.Free;
end;


  1. С помощью обращения к свойству ClassName:
1
2
3
4
5
6
7
8
var
  obj: TObject;
begin
  obj := TObject.Create;
  if obj.ClassName <> '' then
    ShowMessage('Объект создан');
  obj.Free;
end;


  1. С помощью обращения к свойству ClassType:
1
2
3
4
5
6
7
8
var
  obj: TObject;
begin
  obj := TObject.Create;
  if obj.ClassType <> nil then
    ShowMessage('Объект создан');
  obj.Free;
end;