Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - private, protected, public ??
Horschdware - Di 30.03.04 22:53
Titel: private, protected, public ??
Ich hab folgendes erstellt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| type TWriter = class(TObject) private WOwner : TComponent; WDXDraw : TDXDraw; WFont : string; WSize : integer; WFontTable : integer; WPatternSkip : integer; WWriterImages : TDXImageList; WWriterImagePath : string; procedure SetFont(sFont : string); procedure SetSize(iSize : integer); function XDiff(CIdx : integer; Size : integer = 25) : integer; function YDiff(CIdx : integer; Size : integer = 25) : integer; protected public procedure Write(text : string; PosX, PosY : integer); constructor Create(aForm: TComponent; aDXDraw: TDXDraw); procedure SetWriterStyle(sFont : string; iSize : integer); property Font : string read WFont write SetFont; property Size : integer read WSize write SetSize; destructor Destroy; end; |
Das ganze habe ich in mein Form1 eingebunden. Soweit so gut.
Eigentlich dürfte ich ja von Form1 aus nur die Teile im public Teil aufrufen könne, oder?
Ich kann aber auf alles zugreifen. Also auch auf die private Teile. Und das ist nicht gut.
Was mach ich nun?
Motzi - Di 30.03.04 23:02
Innerhalb einer Unit kann immer jedes Objekt auf alle Felder der Objekte zugreifen die ebenfalls in derselben Unit deklariert sind... -> einfach deine Klasse in eine eigene Unit auslagern und alles passt..! :)
Horschdware - Di 30.03.04 23:04
oh, ok, danke.
hab das mal zu testzwecken alles in eine unit rein.
dann ist ja alles klar.
Christian S. - Di 30.03.04 23:10
Nur der Vollständigkeit halber (Horschdware wird es nichts nützen):
In Delphi .NET gibt es die Sichtbarkeit "strict private". Dies bedeutet dann, dass die Elemente nur in der Klasse sichtbar sind, in der sie deklariert wurden. Auch "strict protected" gibt es, dort wird das ganze noch auf abgeleitete Klassen erweitert. Dabei ist es egal, wo diese deklariert wurden.
Horschdware - Di 30.03.04 23:12
danke, das hört sich so leicht abwertend an :twisted: :wink:
Christian S. - Di 30.03.04 23:32
Nein! :lol: Ich habe lediglich einen Blick auf Deine Delphi-Versionen geworfen! :-)
Horschdware - Di 30.03.04 23:46
aso, :idea: lol
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!