Delphi-PRAXiS

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/)
-   -   Delphi geerbte Eigenschaften nicht im OI anzeigen (https://www.delphipraxis.net/28366-geerbte-eigenschaften-nicht-im-oi-anzeigen.html)

mandumoal 23. Aug 2004 20:44


geerbte Eigenschaften nicht im OI anzeigen
 
Hi!

Ist es möglich, einer Komponente beizubringen, dass sie einige geerbte Eigenschaften nicht im Objekt-Inspektor anzeigen soll, also nicht als published übernehmen?

Ich möchte ein TEdit ( -> TMyEdit = class(TEdit) ) ableiten, aber z.B. die Eigenschaft "ShowHint" soll nicht im OI sichtbar sein.

mfg mandumoal

Nothine 23. Aug 2004 20:46

Re: geerbte Eigenschaften nicht im OI anzeigen
 
aus der delphi-hilfe:
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.
Dementsprechend ist es nicht möglich ein published-Element aus dem OI zu nehmen, denn dafür müsste seine sichtbarkeit verringert werden, was aber nicht geht.

Hansa 23. Aug 2004 20:49

Re: geerbte Eigenschaften nicht im OI anzeigen
 
Weiß zwar nicht, was das überhaupt soll. Eventuell kann man es aber einfach von TCustomEdit ableiten.

mandumoal 24. Aug 2004 10:44

Re: geerbte Eigenschaften nicht im OI anzeigen
 
Zitat:

Zitat von Nothine
Dementsprechend ist es nicht möglich ein published-Element aus dem OI zu nehmen

schlecht. Aber Danke für die Antwort.

Zitat:

Zitat von Hansa
Weiß zwar nicht, was das überhaupt soll. Eventuell kann man es aber einfach von TCustomEdit ableiten.

Ich benötige eine Kompo, die wie ein TEdit aussieht, aber eben nur bestimmte Eigenschaften im OI sichtbar sind, da zur Laufzeit eine Form designed wird, aber eben nicht alle Eigenschaften in diesem Laufzeit-OI sichtbar seien sollen.
Wenn ich es von TCustomEdit ableite sind da auch noch sachen drin, die ich nicht haben will.
Ich muss wohl selber ein CustomEdit machen.

Danke für die infos,

mfg mandumoal

MrKnogge 24. Aug 2004 10:50

Re: geerbte Eigenschaften nicht im OI anzeigen
 
Servus
genau das Thema hatten wir vor kurzem. Bei den TCustom... sind alle Eigenschaften protected, das heist du kannst sie entweder nach puplic "verschieben", so das jeder auf sie zugreifen kann, oder du kannst sie in private stecken.

gruss

Golze 27. Aug 2004 17:22

Re: geerbte Eigenschaften nicht im OI anzeigen
 
... Eigenschaften von Komponenten können im Objektinstpektor unsichtbar gemacht werden. Im folgenden Beispiel werden die entsprechenden Properties der registrierten Komponente nicht mehr
angezeigt. Das Objekt TMyPanel enthält somit keine Caption, kein Align, kein Alignment.

Delphi-Quellcode:
TMyPanel = class(TPanel)
  private
    { Private-Deklarationen }
    FAlignment: TAlignment;
    FAlign: TAlign;
    FCaption: String;
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property Alignment: TAlignment read FAlignment;
    property Align: TAlign read FAlign;
    property Caption: String read FCaption;
  end;


procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TMyPanel]);
end;
Grüße
Kay

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]

SirThornberry 27. Aug 2004 17:29

Re: geerbte Eigenschaften nicht im OI anzeigen
 
Sie werden zwar nicht mehr angezeigt, aber die Caption kann auch nicht mehr genutzt werden!!

Nothine 27. Aug 2004 17:32

Re: geerbte Eigenschaften nicht im OI anzeigen
 
außerdem können die eigenschaften immernoch im source abgerufen werden, sie sind nicht wirklich "weg"

Golze 27. Aug 2004 18:35

Re: geerbte Eigenschaften nicht im OI anzeigen
 
... die Caption kann wie folgt genutzt werden:
inherited Caption := 'text';

kay


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 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