Das hier funktioniert:
Delphi-Quellcode:
type
TKlasse1 = class(TObject)
FTest: string;
end;
Das hier funktioniert nicht:
Delphi-Quellcode:
type
TKlasse2 = class(TStringList)
FTest: string;
end;
Ignorieren wir mal die Frage ob das die feine Art ist, den theoretisch sollte eine Feldvariable auch ohne Sichtbarkeitsattribute funktionieren. Ohne ein Attribut sollte FTest meines wissens nach Public (oder Published) sein.
Nun habe ich zufällig vergessen ein Sichtbarkeitsattribut in eine Klasse einzufügen, und es knallte. War ich überrascht, denn ich habe mich erinnert, dass ich vor Jahren (am Anfang) eine Klasse schon mal ohne ein Attribut gemacht habe. Und tatsächlich, leite ich die Klasse von TObject wird das akzeptiert, von anderen höheren Klassen nicht.
Ich habe da paar Theorien, aber keine wirkliche Erklärung.