AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Von welcher Klasse ableiten?

Ein Thema von Pseudemys Nelsoni · begonnen am 10. Mär 2005 · letzter Beitrag vom 10. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 19:17
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.
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 21:16
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).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 21:17
Oder leite dir einfach eine Komponente von TCostumSocket ab und verändere die Sichtbarkeit der Properties von published nach public.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 21:24
Hallo Bernhard, ich werds dann so machen, danke für die Idee

@Dax: man kann die Sichtbarkeit nur erhöhren, aber nie verringern.
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 21:26
Dann weiß ich nicht, was bei mir los ist.. ich hab's mit meinem Delphi6 hinbekommen, eine published-Property protected zu kriegen.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 21:37
moin,

in der Delphi 6 hilfe steht aber genau das gleiche

Zitat:
Sie können die Sichtbarkeit eines Elements in einer untergeordneten Klasse durch Redeklarieren erhöhen, jedoch nicht verringern. So kann beispielsweise eine protected-Eigenschaft in einer abgeleiteten Klasse als public deklariert werden, nicht aber als private. Außerdem können published-Elemente nicht zu public-Elementen gemacht werden. Weitere Informationen hierzu finden Sie im Abschnitt Eigenschaften überschreiben und neu deklarieren.
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#7

Re: Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 21:40
Dann probier mal das aus.. Bei mir funktionierts.

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;
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 21:45
Moin Dax,

dies scheint aber keine Wirkung zu haben, denn wenn ich folgendes habe:

Delphi-Quellcode:
type
  TBase = class(TCollectionItem)
  private
    fString: string;
  published
    property AString: string read fString write fString;
  end;

  TDescendant = class(TBase)
  private
    property AString;
  end;
und eine instanz von TDescendant erzeuge, kann ich immernoch auf "AString" zugreifen obwohls ja im private ist
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#9

Re: Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 21:49
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 ^^
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#10

Re: Von welcher Klasse ableiten?

  Alt 10. Mär 2005, 21:50
wenn du innerhalb der gleichen unit darauf zugreifst, dann ist das klar. kannst du aus einer anderen unit auch darauf zugteifen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 Uhr.
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