Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Verstecken von Properties bei Ableitung (https://www.delphipraxis.net/43724-verstecken-von-properties-bei-ableitung.html)

leddl 7. Apr 2005 18:39


Verstecken von Properties bei Ableitung
 
Servus miteinander, ich bins wieder! ;)

Ich möchte eine Komponente von TStringGrid ableiten. Allerdings will ich, daß bestimmte StringGrid-Properties (zB Cells) nur noch intern nutzbar sind.
Ist das irgendwie möglich? Oder müßte ich dafür meine Komponente von etwas anderem ableiten und diese Properties neu implementieren?
Der Sinn der dahinter steckt ist, daß ich die Funktionalität dieser Eigenschaften evtl benötige, aber nicht will, daß der Verwender der Komponente darin herumpfuschen kann. ;)

CalganX 7. Apr 2005 18:41

Re: Verstecken von Properties bei Ableitung
 
Hi,
so einfach geht das nicht. Soweit ich weiß musst du von TCustomStringGrid oder TCustomGrid ableiten. Dann kannst du durch einfaches redefinieren von Eigenschaften ihre Sichtbarkeit verändern.

Chris

NicoDE 7. Apr 2005 18:43

Re: Verstecken von Properties bei Ableitung
 
Delphi-Quellcode:
  private
    property Foo;

Hansa 7. Apr 2005 18:58

Re: Verstecken von Properties bei Ableitung
 
Oh je. Diese Frage ist gar nicht so leicht zu beantworten. 8) Für so was sind die VCL-Sourcen gedacht. Da mußt du mal nachsehen. Insbesondere, als was halt irgendwas :mrgreen: deklariert/abgeleitet ist. Was sind die Cells überhaupt ? :gruebel:

Das schlimmste wäre, auf einen Vorfahren zurückzugehen und dann das halbe Stringgrid nachzubauen und anzupassen. Beinahe katastrophal wäre es die VCL selber umzubauen und die Cells ins private zu verschieben. :cry: @Nicode : ich glaube fast nicht, daß das sich so einfach verschieben läßt.

@Leddl : ein Stringgrid ist nicht so ganz ohne für eigene Komponente.

OT : Die Funktion zwischenzeitliche Beiträge zu bemerken ist echt von Vorteil. Und es wird sogar festgestellt, falls nach einem noch einer da ist. :thumb: Nachteil ist, daß man den Beitrag eventuell vorm Abschicken 10mal aktualisieren muß. :mrgreen:

[Edit]3 mal editiert

leddl 7. Apr 2005 19:12

Re: Verstecken von Properties bei Ableitung
 
Danke für die Antworten, hätt ich eigentlich auch selbst drauf kommen können. :wall:
Werds mal so versuchen. Das TCustomStringGrid beinhaltet dann also alle Eigenschaften des StringGrids, die ich dann nur noch redklarieren muß?

@Hansa:
Cells ist einfach nur ein 2-dimensionales Array of String

//Edit:
Hm, wenn ich von TStringGrid ableite und das so mache
Delphi-Quellcode:
private
  property Cells;
dann kann ich später Cells trotzdem noch ansprechen.
Oder muß ich die property-Deklaration vollständig schreiben?

Und TCustomStringGrid scheints ja gar nicht zu geben, kann das sein? Zumindest kann ich davon nicht ableiten...

Hansa 7. Apr 2005 19:42

Re: Verstecken von Properties bei Ableitung
 
Zitat:

Zitat von leddl
...Das TCustomStringGrid beinhaltet dann also alle Eigenschaften des StringGrids, die ich dann nur noch redklarieren muß?...

Bloß redeklarieren ? Was soll das sein ? :gruebel: Ich gehe eher davon aus, daß die Methoden abstract deklariert sind. So wie es sich gehört. 8) Und somit komplett selber definiert werden müssen :!: Zur Laufzeit kriegst Du dann sehr hübsche, sehr schwer zu lokalisierende Fehlermeldungen. Na dann : viel Vergnügen. :mrgreen:

Genaue Aufklärung werden wohl nur die VCL Sourcen liefern. Das Stringgrid als eigene Komponente umzubauen, das wäre doch mal was. Bräuchte auch noch ein spezielles. Allerdings mache ich bei sowas folgende Rechnung auf :

- fertige Komponente nirgends zu erhalten : selber machen oder anders

- fertige Komponente ist zu haben und auch brauchbar (z.B. mit Source) : Suchzeit+Einarbeitungszeit+Anschaffungskosten+ dumm fragen + warten <= (billiger als) Eigenentwicklung -> kaufen

sonst : selber machen oder irgendwie anders

NicoDE 8. Apr 2005 09:31

Re: Verstecken von Properties bei Ableitung
 
Zitat:

Zitat von leddl
Hm, wenn ich von TStringGrid ableite und das so mache
Delphi-Quellcode:
private
  property Cells;
dann kann ich später Cells trotzdem noch ansprechen.

In der gleichen Unit kannst Du auf die privaten Member einer anderen Klasse zugreifen (sowas wie 'friend' aus anderen Sprachen).

leddl 8. Apr 2005 10:13

Re: Verstecken von Properties bei Ableitung
 
Das is mir schon klar, so ein Anfänger bin ich auch wieder nicht. ;)

Ich meinte später, wenn ich die Komponente in mein Projekt eingebunden habe. Da kann ich trotzdem Cells noch ansprechen.

joachimd 8. Apr 2005 10:41

Re: Verstecken von Properties bei Ableitung
 
Zitat:

Zitat von leddl
Ich meinte später, wenn ich die Komponente in mein Projekt eingebunden habe. Da kann ich trotzdem Cells noch ansprechen.

Du darfst eine einmal veröffentlichte Eigenschaft nicht mehr privatisieren. Das ist gegen jegliche OOP-Regeln!

leddl 8. Apr 2005 10:45

Re: Verstecken von Properties bei Ableitung
 
Das mag ja sein, nur möchte ich eben die Funktionalität eines TStringGrids haben, ohne alles neu implementieren zu müssen.

Aber anscheinend ist das so ohne weiteres nicht möglich? OK, dann werd ich das irgendwie anders lösen müssen. Trotzdem danke für die Hilfe.

Falls aber noch jemand ne Idee haben sollte: Immer her damit! ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:42 Uhr.
Seite 1 von 2  1 2      

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