AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Bei Klassenvererbung eine Public property sperren
Thema durchsuchen
Ansicht
Themen-Optionen

Bei Klassenvererbung eine Public property sperren

Ein Thema von backdraft · begonnen am 20. Okt 2005 · letzter Beitrag vom 21. Okt 2005
Antwort Antwort
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
333 Beiträge
 
Delphi 11 Alexandria
 
#1

Bei Klassenvererbung eine Public property sperren

  Alt 20. Okt 2005, 22:35
Hallo,

ich habe folgendes Problem.

Ich habe mir eine Klasse von TCustomComboBox abgeleitet.

Die TCustomComboBox hat im public-Teil die property Items.

In meiner eigenen Komponente möchte ich zwar intern (innerhalb meiner Komponete) auf diese Eigenschaft zugreifen, aber der IDE diesen Zugriff verweigern.

Ich hab schon folgendes probiert, aber es funktioniert nicht

type
TMyComboBox = class(TCustomComboBox)
protected
property Items;
end;

Ich komme danach immer noch mit MyComboBox1.Items.Clear an die Eigenschaft ran.

Kann man vielleicht soetwas nicht rückgängig machen?

Danke Oliver
Oliver
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Bei Klassenvererbung eine Public property sperren

  Alt 20. Okt 2005, 23:41
Hallo,

die Regel lautet: einmal public, immer public. Man kann in Delphi die Sichtbarkeit nur erhöhen, niemals einschränken.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Bei Klassenvererbung eine Public property sperren

  Alt 21. Okt 2005, 07:18
Delphi-Quellcode:
// alles deine neue Klasse
  private
   function GetItems: TStrings;
  public
    property Items: TStrings read GetItems;
//.. der Rest
  end;

function TKlasse.GetItems;
begin
  Result := nil;
end;
und Items.Clear läuft total ins Leere!
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Bei Klassenvererbung eine Public property sperren

  Alt 21. Okt 2005, 07:25
Zitat von Kroko1999:
und Items.Clear läuft total ins Leere!
Du meinst wohl eher es kracht!

Zitat von backdraft:
Die TCustomComboBox hat im public-Teil die property Items.

In meiner eigenen Komponente möchte ich zwar intern (innerhalb meiner Komponete) auf diese Eigenschaft zugreifen, aber der IDE diesen Zugriff verweigern.
Du hast folgende Möglichkeiten:

1, Probier mal mittels Reintroduce das Property neu zu definieren. Damit kannst du es nur teilweise verstecken, da durch ein Case auf TCustomComboBox das Propertie doch wieder erreichbar ist.

2, Du leitest deine Klasse von TWinControl ab und hast als Member-Variable eine ComboBox welche mit alClient in deinem WinControl liegt. Dann kannst Du die Schnittstelle/Public Properties so definieren wie du Lustig bist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Bei Klassenvererbung eine Public property sperren

  Alt 21. Okt 2005, 07:28
Zitat von Bernhard Geyer:
...
Du meinst wohl eher es kracht!

...
JA
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:32 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