Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Eine Frage zu "halben" Klassen

  Alt 19. Mai 2012, 23:19
Der Standard ist Public, aber wurde die Klasse oder ein Vorfahr mit dem Kompilerschalter {$M+} kompiliert (z.B. TControl und somit auch TComponent und die ganze VCL), dann wird die Grundeinstellung auf Published geändert, für diese Komponenten/Klassen.

Und das Published macht auch ein paar Probleme ... z.B. bei überladenen Methoden.


Delphi-Quellcode:
strict private // ist wirklich privat
private // entspricht unitintern eher einem public
strict protected // ist wirklich protected
protected // entspricht unitintern eher einem public
public // ab hier lohnt sich strict nicht, da es eh schon global ist, also gibt's das auch nicht
published
Zitat:
und da landen die Komponenten in keinem Abschnitt.
Doch, tun sie ... in dem, was standardmäßig definiert wurde.
Man könnte es also auch selber angeben. (nur blöd, daß der VCL-Parser so doof ist)


Der Grund wurde auch schon genannt.
Die VCL, genauer der DFM-Loader geht immer über die "alte" RTTI und dort sind standardmäßig nur für Published Property und Methoden die Informationen vorhanden.
Nur Published-Property, also speziell Eventmethoden und Komponenten-Variablen können verarbeitet werden, was für das Laden der DFM notwendig ist.
$2B or not $2B

Geändert von himitsu (19. Mai 2012 um 23:27 Uhr)
  Mit Zitat antworten Zitat