![]() |
Von welcher Klasse ableiten?
Moin,
ich brauche soetwas wie TClientSocket, ABER die properties/Events dürfen noch nicht published sein, hat jemand ne Idee von wo ich da am besten ableiten sollte? bei "TCustomSocket" ist dies zwar der Fall, aber am ende braucht diese die Property "Active" und das will ich halt nicht. |
Re: Von welcher Klasse ableiten?
Leite ein eigene Klasse von TComponent ab und erzeuge als Member-Variable ein TClientSocket-Instanz.
Dann kannst Du wunderbar nur das freigeben was Du willst. Alternativ kannst Du eine Komponente erstellen, welche sich mit einer TClientSocket-Komponente verbinden kann (ähnliche z.B. TDatabase-TTable-TDataset-TDBGrid bei Verwendung der BDE). |
Re: Von welcher Klasse ableiten?
Oder leite dir einfach eine Komponente von TCostumSocket ab und verändere die Sichtbarkeit der Properties von published nach public.
|
Re: Von welcher Klasse ableiten?
Hallo Bernhard, ich werds dann so machen, danke für die Idee ;)
@Dax: man kann die Sichtbarkeit nur erhöhren, aber nie verringern. |
Re: Von welcher Klasse ableiten?
Dann weiß ich nicht, was bei mir los ist.. ich hab's mit meinem Delphi6 hinbekommen, eine published-Property protected zu kriegen.
|
Re: Von welcher Klasse ableiten?
moin,
in der Delphi 6 hilfe steht aber genau das gleiche :) Zitat:
|
Re: Von welcher Klasse ableiten?
Dann probier mal das aus.. Bei mir funktionierts. :gruebel:
Delphi-Quellcode:
type
TBase = class(TCollectionItem) private fString: string; published property AString: string read fString write fString; end; TDescendant = class(TBase) protected property AString; end; |
Re: Von welcher Klasse ableiten?
Moin Dax,
dies scheint aber keine Wirkung zu haben, denn wenn ich folgendes habe:
Delphi-Quellcode:
und eine instanz von TDescendant erzeuge, kann ich immernoch auf "AString" zugreifen obwohls ja im private ist
type
TBase = class(TCollectionItem) private fString: string; published property AString: string read fString write fString; end; TDescendant = class(TBase) private property AString; end; |
Re: Von welcher Klasse ableiten?
Ich verstehe die Welt, bzw. Delphi 6 nicht mehr.
Aber wenn du den Code in die selbe Unit einfügst ist das ja klar, denn im selben Namespace definierte Klassen können sich ja gegenseitig lesen und schreiben wie ihnen lieb ist. Sobald das aber in einer anderen Unit steht, ist TDescendant.AString garantiert private! PS: Hab's grade selbst ausprobiert, also bitte ^^ |
Re: Von welcher Klasse ableiten?
wenn du innerhalb der gleichen unit darauf zugreifst, dann ist das klar. kannst du aus einer anderen unit auch darauf zugteifen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz