Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Frage zu Klassenvariablen

  Alt 4. Feb 2019, 09:07
Man sollte der Vollständigkeit halber anführen dass das dein Formular (TForm) ein Sonderfall ist: Normalerweise ist die "Sichtbarkeit" bei Klassen und Records ohne weitere Angabe public .

TForm leitet sich letztendlich von TPersistent aus System.Classes ab. Bei dieser Klasse wurde von den Delphi-Entwicklern eine Compiler-Einstellung vorgenommen dass es standardmäßig published sein soll:
Zitat:
Ein Element ohne Attribut erhält automatisch die Sichtbarkeit des vorhergehenden Elements in der Deklaration. Die Elemente am Anfang einer Klassendeklaration ohne explizite Sichtbarkeitsangabe werden standardmäßig als published deklariert, wenn die Klasse im Status {$M+} compiliert oder von einer mit {$M+} compilierten Klasse abgeleitet wurde. Andernfalls erhalten sie das Attribut public.
(Quelle)


Heißt:
Delphi-Quellcode:
type
   TMyObject = class(TObject)
      someField:   Integer; // <<< public
   end;
   
   TMyRecord = record
      someField: Integer; // <<< public
   end;
   
   TMyComponent = class(TComponent)
      someField:   Integer; // <<< published
   end;
  Mit Zitat antworten Zitat