![]() |
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 |
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: |
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 |
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:
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.
type
TGridOption = (goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing, goColSizing, goRowMoving, goColMoving, goEditing, goTabs, goRowSelect, goAlwaysShowEditor, goThumbTracking); TGridOptions = set of TGridOption; 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 ;) |
Re: Frage zu Properties bei eigener Komponente
Zitat:
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* |
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 |
Re: Frage zu Properties bei eigener Komponente
Hi!
Habe es über OptionsEx gemacht. Trotzdem danke für eure Tipps. Ciao fkerber |
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 ;)
|
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 06:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz