Property Override funktioniert nicht

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Property Override funktioniert nicht

Beitrag von Eclipticon »

Hi,

ich moechte bei einer abgeleiteten Klasse einige Properties aus dem Objektinspektor loswerden, da sie der User (= mein alter ego) nicht mehr aendern sollte:

Code: Alles auswählen

TMyGrid = class(TStringGrid)
  private
    property ColCount;
    property FixedCols;
    property FixedRows;
    property Scrollbars;
  public
    // ...
  published
    // ...
  end;
Funktioniert aber leider nicht ... was mache ich hier falsch?

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Property Override funktioniert nicht

Beitrag von Maik81ftl »

kann sein, das ich mir Ieere, aber da müstest du ggf alle Vorgänger ändern, oder gleich eine "Private Unit Ordner anlegen", und die kopieren und von TObjekt auf ändern. und das ist auf jeden Arbeit ohne ende, als nix, was am ende Meiner Meinung nach den Aufwand rechtfertigt.

Hab das mal unter Delphi gemacht. ü 4 wochen inkl. fehlersuche und co...
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Dets
Beiträge: 61
Registriert: Di 11. Sep 2007, 16:59
OS, Lazarus, FPC: Ubuntu Maverick (L 0.9.28.2-10, FPC 2.4.0)
CPU-Target: 32Bit
Wohnort: Lage
Kontaktdaten:

Re: Property Override funktioniert nicht

Beitrag von Dets »

Eclipticon hat geschrieben:Hi,

ich moechte bei einer abgeleiteten Klasse einige Properties aus dem Objektinspektor loswerden, da sie der User (= mein alter ego) nicht mehr aendern sollte:

Code: Alles auswählen

TMyGrid = class(TStringGrid)
  private
    property ColCount;
    property FixedCols;
    property FixedRows;
    property Scrollbars;
  public
    // ...
  published
    // ...
  end;
Funktioniert aber leider nicht ... was mache ich hier falsch?
Andersrum wird ein Schuh draus: von TCustomStringGrid ableiten, und alle Properties, die im Objectinspector erscheinen sollen unter published aufführen.

Dets ...

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Property Override funktioniert nicht

Beitrag von Eclipticon »

Dets hat geschrieben:Andersrum wird ein Schuh draus:
:?:
Dets hat geschrieben:von TCustomStringGrid ableiten, und alle Properties, die im Objectinspector erscheinen sollen unter published aufführen.
Bedeutet: Ein Property Override geht nur in Richtung mehr Sichtbarkeit?

Dets
Beiträge: 61
Registriert: Di 11. Sep 2007, 16:59
OS, Lazarus, FPC: Ubuntu Maverick (L 0.9.28.2-10, FPC 2.4.0)
CPU-Target: 32Bit
Wohnort: Lage
Kontaktdaten:

Re: Property Override funktioniert nicht

Beitrag von Dets »

Eclipticon hat geschrieben:Bedeutet: Ein Property Override geht nur in Richtung mehr Sichtbarkeit?
Genau. Deswegen gibt's von so ziemlich allen visuellen Controls eine Custom-Variante, die die komplette Funktionalität beinhaltet, aber diverse Properties nicht veröffenlicht (in deinem Fall: TCustomStringGrid). In der eigentlichen TStringGrid-Implementation passiert dann nicht viel mehr als das veröffentlichen der entsprechenden Properties.
Use the source, Luke (STRG-Linksklick auf TStringGrid)!

Dets ...

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Property Override funktioniert nicht

Beitrag von pluto »

Du kannst die Sichtbarkeit der Eigenschaften leider nur hinaufsetzten. Nicht herunter. Das heißt:
Wenn du eine Eigenschaft im Public Bereich hast und möchtest dies wieder verstecken, kannst du sie nicht in der Nachfolge Klasse einfach im Private Bereich dekalieren.
MFG
Michael Springwald

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Property Override funktioniert nicht

Beitrag von Eclipticon »

Danke Euch!

Antworten