この短いDelphi手順を検討してください。
procedure TfrmXQuery.FieldListFillFromDefault;
var
field_list: TStringList;
begin
try
if x <> '' then begin
field_list := TStringList.Create;
{do some stuff with field_list}
end;
finally
if field_list <> NIL then
begin
field_list.Free;
end;
end;
end;
これをDelphi3で実行すると、x =''であるため、field_listは作成されません。
- なぜ
field_list <> NIL
ですか? - オブジェクトは次のように初期化されていません
NIL
か? - そうでない場合
NIL
はそれは何ですか? - 割り当てられていない場合、どうすれば割り当てられて
NIL
いるかどうかを知ることができFree
ますか?関数はAssigned
教えてくれません:if Assigned(an_object)
と同等ですif an_object = NIL