Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Sinnfrage "published property " in abgeleiteten Komponenten (https://www.delphipraxis.net/157933-sinnfrage-published-property-abgeleiteten-komponenten.html)

Net7 30. Jan 2011 14:27

Sinnfrage "published property " in abgeleiteten Komponenten
 
Hallo Freunde,

irgendwie verstehe ich nicht den Hintergund in abgeleiteten Komponenten warum folgendes gemacht wird.

Code:
type

TIrgendEinEdit = class(TEinEdit) // kein TCustomEdit
published
    property Anchors;
    property AutoSelect;
    property AutoSize;
    property BiDiMode;
    property CharCase;
    property Color;
    // usw.
end;

TMyIrgendEinEdit = class(TIrgendEinEdit) // kein TCustomEdit
 published
    property Anchors;
    property AutoSelect;
    property AutoSize;
    property BiDiMode;
    property CharCase;
    property Color;
    // usw.
end;
Diese property sind doch eh öffentlich also warum werden sie in der Ableitung erneut published ?

mkinzler 30. Jan 2011 14:35

AW: Sinnfrage "published property " in abgeleiteten Komponenten
 
Bei der Vererbung wird deren Sichtbarkeit auf public niedrigt. So werden dann die gewünschten wieder sichtbar gemacht

himitsu 30. Jan 2011 14:38

AW: Sinnfrage "published property " in abgeleiteten Komponenten
 
In der Basisklasse sind diese Property noch versteckt.
Hier wurden sie nun für die Verwendung nach Published verschoben und werden dadurch im OI sichtbar/nutzbar.

Der Grund ist einfach, daß man nun von der Basisklasse etwas ableiten kann und dabei die Kontrolle behält, was man in seiner Komponente anzeigen möchte, denn nachträglich verstecken geht schlecht, wenn etwas schonmal sichtbar war.

[edit]
Zitat:

kein TCustomEdit
hmmm, vielleicht hatte man mal von TCustomEdit abgeleitet? :gruebel:

Net7 30. Jan 2011 14:53

AW: Sinnfrage "published property " in abgeleiteten Komponenten
 
Zitat:

Zitat von himitsu (Beitrag 1078308)
kein TCustomEdit
hmmm, vielleicht hatte man mal von TCustomEdit abgeleitet? :gruebel:

War nur ein Beispiel, von Custom deshalb nicht da die Ableitung bereits Erweiterungen enthält.

In der Basisklasse sind diese Property eben nicht versteckt sondern sind bereits published, deswegen frage ich ja nach dem Sinn.

Zitat:

Zitat von mkinzler (Beitrag 1078306)
Bei der Vererbung wird deren Sichtbarkeit auf public niedrigt. So werden dann die gewünschten wieder sichtbar gemacht

Hmm... ist das irgendwo dokumentiert, denn wenn ich von der Basisklasse ableite ohne das ich erneut die Property published deklariere sind diese trotzdem published und weiterhin im OI sichtbar.

himitsu 30. Jan 2011 14:56

AW: Sinnfrage "published property " in abgeleiteten Komponenten
 
Nja, schaden kann es nicht, aber wenn es vorher schon sichtbar war, dann änderst sich ja nichts ... ist dann praktisch umsonst.

Wenn das Licht an ist und ich es nochmal anschalte, dann bleibt es ja an und wird nicht anner. :angle2:

Net7 30. Jan 2011 15:44

AW: Sinnfrage "published property " in abgeleiteten Komponenten
 
Zitat:

Zitat von himitsu (Beitrag 1078322)
Nja, schaden kann es nicht, aber wenn es vorher schon sichtbar war, dann änderst sich ja nichts ... ist dann praktisch umsonst.

Wenn das Licht an ist und ich es nochmal anschalte, dann bleibt es ja an und wird nicht anner. :angle2:


Ok, damit hat sich meine Frage also beantwortet. Es ist also Sinnlos, komisch finde ich nur das sich die Programmierer, auch bei kommerziellen Komponenten die Zeit nehmen, diese Sinnlosikeit fortzuführen.

Danke :)

alzaimar 30. Jan 2011 16:09

AW: Sinnfrage "published property " in abgeleiteten Komponenten
 
Zitat:

Zitat von Net7 (Beitrag 1078336)
...Es ist also Sinnlos, komisch finde ich nur das sich die Programmierer, auch bei kommerziellen Komponenten die Zeit nehmen, diese Sinnlosikeit fortzuführen.

Aus Dokumentationszwecken?

Uwe Raabe 30. Jan 2011 16:17

AW: Sinnfrage "published property " in abgeleiteten Komponenten
 
Manchmal ist auch die Reihenfolge der published Properties entscheidend, da dadurch die Reihenfolge des Schreibens in einen Stream (z.B. DFM) und folglich auch das nachfolgende Lesen beeinflusst wird. Manche Properties dürfen erst gelesen werden, wenn andere bereits gesetzt sind. Das kann man damit erreichen.

Net7 30. Jan 2011 16:20

AW: Sinnfrage "published property " in abgeleiteten Komponenten
 
Zitat:

Zitat von alzaimar (Beitrag 1078338)
Zitat:

Zitat von Net7 (Beitrag 1078336)
...Es ist also Sinnlos, komisch finde ich nur das sich die Programmierer, auch bei kommerziellen Komponenten die Zeit nehmen, diese Sinnlosikeit fortzuführen.

Aus Dokumentationszwecken?

Nun bin ich verwirrt, man schreibt zusätzlich Quelltext um zu dokumentieren ??

Net7 30. Jan 2011 16:32

AW: Sinnfrage "published property " in abgeleiteten Komponenten
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1078339)
Manchmal ist auch die Reihenfolge der published Properties entscheidend, da dadurch die Reihenfolge des Schreibens in einen Stream (z.B. DFM) und folglich auch das nachfolgende Lesen beeinflusst wird. Manche Properties dürfen erst gelesen werden, wenn andere bereits gesetzt sind. Das kann man damit erreichen.

Ja, das macht Sinn.
Diese Möglichkeit habe ich noch garnicht in Betracht gezogen, folglich sollte man bei neuen Propertys beachten, ob man Daten von geerbten Propertys benötigt und die "published property" neu ordnen sollte.

Verstehe ich das richtig ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:21 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz