Object and pointer

I have created my own object and called it TKeyList
Everything traces and compiles correctly, TKeyList is descendant of TObject and TCustomKeyList, - But my TKeyList object does not show a value as a Keys pointer in the Tfrom1.Create?
what am I doing wrong as this never happed in Delphi 7

procedure TForm1.FormCreate(Sender: TObject);
begin
  Keys_RecordsFolder := GetCurrentDir + '/Keys_Records';
  If Not(DirectoryExists(Keys_RecordsFolder))
    then CreateDir(Keys_RecordsFolder);
  If Not(DirectoryExists(Keys_RecordsFolder)) then halt;
  Keys := TKeyList.Create('New Key');
  TV.Items.AddObject(nil, 'New Key', Keys);
  TNEditing := nil;
end;
Constructor Create(KeyName: String; ParentKeyList: TKeyList = nil);

I have a fault in Delphi 12
I fixed the issue with adding ‘nil’
Keys := TKeyList.Create(‘New Key’, Nil);

What is the definition of TKeyList? and TCustomKeyList?

TCustomKeyList is a standard descendant of TObject
and TKeyList is a standard descendant of TCustomKeyList
nothing complex or abnormal
with the ParentKeyList: TKeyList = nil and not putting Nil in the creation of TKeyList
example TKeyList.Create(‘New Key’); did not allow the TKeyList pointer ‘keys’ receive a pointer.
but when I wrote Key := TKeyList.Create(‘New Key’, Nil);
I have a pointer value in Key in my local values window