AGB  ·  Datenschutz  ·  Impressum  







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

Properties bei Ableitung verschieben

Ein Thema von Getox · begonnen am 6. Mär 2019 · letzter Beitrag vom 8. Mär 2019
Antwort Antwort
Seite 1 von 2  1 2      
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#1

Properties bei Ableitung verschieben

  Alt 6. Mär 2019, 14:04
Moin,

kann ich beim Ableiten einer Komponente (zum Beispiel TEdit) in der Ableitung Sachen vom Published in den Public Bereich verschieben, ohne die Ursprungskomponente anzufassen? Und falls es geht, wie?

Ich möchte ein eigenes Edit implementieren, das nicht nur neue Funktionen beherrscht, sondern auch für meine Zwecke aufgeräumter ist. Dafür möchte ich gerne alles aus dem Objektinspektor verbannen, was ich ohnehin nie benutze. Zur Not kann man es ja immer noch per Code ändern oder wieder aufnehmen.

Liebe Grüße
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Properties bei Ableitung verschieben

  Alt 6. Mär 2019, 14:51
Oder du leitest von TCustomEdit aus Vcl.StdCtrls ab und published nur das, was du möchtest.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#3

AW: Properties bei Ableitung verschieben

  Alt 6. Mär 2019, 18:14
Exakt, genau so handhabt die VCL das intern auch.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von FaTaLGuiLLoTiNe
FaTaLGuiLLoTiNe

Registriert seit: 3. Jul 2004
Ort: NRW
55 Beiträge
 
Delphi XE Enterprise
 
#4

AW: Properties bei Ableitung verschieben

  Alt 6. Mär 2019, 18:15
Man kann bei Vererbung die Sichtbarkeit von Eigenschaften nur erweitern, nicht beschränken.
Christian
<< FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: Properties bei Ableitung verschieben

  Alt 6. Mär 2019, 18:53
Deshalb ja der Trick, in den TCustomXXX-Klassen sind die meisten Properties protected deklariert, die Ableitungen implementieren oft gar keine oder nur wenige weitere Funktionalitäten, erhöhen aber die Sichtbarkeit der für sinnvoll erachteten Properties.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#6

AW: Properties bei Ableitung verschieben

  Alt 6. Mär 2019, 23:26
Man kann bei Vererbung die Sichtbarkeit von Eigenschaften nur erweitern, nicht beschränken.
Jein...
Ich habe auch schon mal methoden in kindklassen überschrieben die dann weniger sichtbar waren.
Nur: der Compiler warnt immer davor und da es sowieso ausversehen war hab' ich das dann auch gleich geändert.

Zumindest bei Methoden geht es also.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Properties bei Ableitung verschieben

  Alt 7. Mär 2019, 07:16
Dann dürfte das hier aber nicht funktionieren:
Delphi-Quellcode:
type
  TParent = class
  public
    procedure TuWas; virtual;
  end;

  TChild = class(TParent)
  strict private
    procedure TuWas; override;
  end;

{ TParent }

procedure TParent.TuWas;
begin
  ShowMessage('Parent');
end;

{ TChild }

procedure TChild.TuWas;
begin
  ShowMessage('Child');
end;

procedure TFormTest.ButtonTestClick(Sender: TObject);
var
  test: TChild;
begin
  test := TChild.Create;
  try
    test.TuWas;
  finally
    test.Free;
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Properties bei Ableitung verschieben

  Alt 7. Mär 2019, 10:01
Bei manchen Eigenschaften kannst du die Sichtbarkeit verringern.

Delphi-Quellcode:
type
  TMyControl = class(TCustomPanel)
  protected
    // Ist nicht mehr im Object-Inspector zu sehen:
    property ParentFont;
    // Ist weiterhin im Object-Inspector zu sehen:
    property Left;
  end;
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#9

AW: Properties bei Ableitung verschieben

  Alt 7. Mär 2019, 10:09
Bei manchen Eigenschaften kannst du die Sichtbarkeit verringern.

Delphi-Quellcode:
type
  TMyControl = class(TCustomPanel)
  protected
    // Ist nicht mehr im Object-Inspector zu sehen:
    property ParentFont;
    // Ist weiterhin im Object-Inspector zu sehen:
    property Left;
  end;
Nun ja
- TCustomPanel.ParentFont ist protected (deklariert in TControl.ParentFont )
- TCustomPanel.Left ist published (deklariert in TControl.Left )
Das wundert mich also nicht und damit stimmt die Aussage weiterhin, dass man die Sichtbarkeit nicht verringern kann.

Geändert von Schokohase ( 7. Mär 2019 um 10:12 Uhr)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Properties bei Ableitung verschieben

  Alt 7. Mär 2019, 16:24
Bei manchen Eigenschaften kannst du die Sichtbarkeit verringern.

Delphi-Quellcode:
type
  TMyControl = class(TCustomPanel)
  protected
    // Ist nicht mehr im Object-Inspector zu sehen:
    property ParentFont;
    // Ist weiterhin im Object-Inspector zu sehen:
    property Left;
  end;
Nun ja
- TCustomPanel.ParentFont ist protected (deklariert in TControl.ParentFont )
- TCustomPanel.Left ist published (deklariert in TControl.Left )
Das wundert mich also nicht und damit stimmt die Aussage weiterhin, dass man die Sichtbarkeit nicht verringern kann.
Im Code habe ich aus versehen TCustomPanel statt TPanel geschrieben. In TPanel ist ParentFont published. Mit folgendem Code wird sie protected:

Delphi-Quellcode:
type
  TMyControl = class(TPanel)
  protected
    // Ist nicht mehr im Object-Inspector zu sehen:
    property ParentFont;
    // Ist weiterhin im Object-Inspector zu sehen:
    property Left;
  end;
Andreas Lauß
Blog
  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 20:43 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