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 Frage zu Properties bei eigener Komponente (https://www.delphipraxis.net/26605-frage-zu-properties-bei-eigener-komponente.html)

fkerber 26. Jul 2004 11:32


Frage zu Properties bei eigener Komponente
 
Hi!

Ich habe eine von Stringgrid eine Komponte abgeleitet und eine neue Property eingeführt.
Das funktioniert auch.
Allerdings will ich diese Property jetzt nicht so wie z.B. Name oder align stehen haben, sondern sie soll der Property Options untergeordnet werden.
Ich hoffe es ist klar, wie ich das meine :drunken:

Nur, wie soll ich das machen?


Ciao fkerber

dizzy 26. Jul 2004 11:41

Re: Frage zu Properties bei eigener Komponente
 
Options ist dann sicherlich vom Typ "Klasse" oder "Set". Bei ersterem kannst du von dem Typ von dem Options ist ableiten, und deine Property hinzufügen, und in deiner eigentlichen Klasse die Property überschreiben und von deinem neuen Typ machen.

...ich hoffe das war einigermaßen verständlich :roll:

fkerber 26. Jul 2004 11:48

Re: Frage zu Properties bei eigener Komponente
 
Hi!

Hört sich theoretisch super an :thuimb:
Nur weiß ich nicht, wei ich das praktisch umsetzen kann, sry :oops:

Kannst du mir einen Tipp oder ein Beispiel geben?


Ciao fkerber

dizzy 26. Jul 2004 12:06

Re: Frage zu Properties bei eigener Komponente
 
Naja zum Beispiel bei einem Edit gibt es die Property "Font". Diese ist vom Typ "TFont", welcher wiederum eigene Properties hat. letztere sind die, die im OI aufgeklappt werden können.

"Options" beim TStringGrid ist vom Typ "TGridOptions" und der so deklariert:
Delphi-Quellcode:
type
  TGridOption = (goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing,
    goColSizing, goRowMoving, goColMoving, goEditing, goTabs, goRowSelect, goAlwaysShowEditor, goThumbTracking);

  TGridOptions = set of TGridOption;
Tja, und das ist jetzt der 2. Fall: Ein Set. Einzige Änderung die du da vornehmen könntest wäre eine weitere Option hinzuzufügen, indem du TGridOption, TGridOptions und TStringGrid.Options neu definierst, aber tunlichst nur zusätzliche Options dran hängst.

Du könntest aber auch nur TStringGrid.Options neu definieren, und da rein schreiben was du willst. Dann musst du nur zusehen, dass die "alte", dann nach aussen nicht mehr sichtbare Property sinnvoll versorgt ist, da sonst die Elternklassen Probleme bekommen dürften, so man das überhaupt so machen kann. Ich hab's noch nicht selber gemacht, von daher keine Gewähr ;)

Hansa 26. Jul 2004 12:07

Re: Frage zu Properties bei eigener Komponente
 
Zitat:

Zitat von dizzy
...ich hoffe das war einigermaßen verständlich :roll:

So halbwegs. :gruebel: Ich hoffe, er meint das folgende : du sollst die Options überschreiben, also neu machen, mit deiner Zusautzoption mit drin.

Jetzt habe ich mir mal den Source vom Grid angesehen (wollte da noch was anderes wissen). Was die Options betrifft : Daran würde ich auf keinen Fall etwas ändern !!

Das zieht sich nämlich durch die ganze Unit. Überall wirken die sich aus. Und das bei fast 6000 Zeilen nur für StringGrid. :shock:

Daran rumzuschrauben, tja das wäre nicht nur eine Operation am offenen Herzen, sondern eher eine Herztransplantation.

Geht es um die Erweiterung der Properties um eine eigene, da spricht allerdings überhaupt nichts dagegen. Sofern man die 20-50 ?? Stellen in der VCL nicht überschreibt, die etwas mit "Options" zu tun haben. Also besser : Finger weg ! brrr *grusel*

mirage228 26. Jul 2004 12:15

Re: Frage zu Properties bei eigener Komponente
 
Hi,

wenn es um zusätzliche Optionen geht, könntest du ja eine Eigenschaft OptionsEx einführen, ähnlich den ItemsEx bei de ComboBoxEx ;)

mfG
mirage228

fkerber 27. Jul 2004 00:25

Re: Frage zu Properties bei eigener Komponente
 
Hi!

Habe es über OptionsEx gemacht. Trotzdem danke für eure Tipps.

Ciao fkerber

dizzy 27. Jul 2004 01:53

Re: Frage zu Properties bei eigener Komponente
 
Ist auch sicherlich die einfachere und empfehlenswertere Variante. Ich nahm nur erst an, dass du unbedingt die Options ändern wolltest ;)

fkerber 27. Jul 2004 01:55

Re: Frage zu Properties bei eigener Komponente
 
Hi!

Wollte ich auch, weil es mir an sich eleganter vorkam, zumal ich nur eine OptionEx habe.
Aber ich habe es nicht hinbekommen :oops: :wall:


Ciao fkerber


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