![]() |
Komponenten -- Eigenschaften entfernen
Hallo zusammen,
ich bin gerade dabei eine Komponente zu schreiben. Gibt es eine Möglichkeit eine geerbte Eigenschaft aus dem OI zu entfernen oder zu verstecken? Ich möchte das die Eigenschaft Brush.Color eines TShapes nicht im OI angezeigt wird. vielen Dank für evl. Antworten Max |
AW: Komponenten -- Eigenschaften entfernen
Weiß ich gerade nicht sicher, aber vielleicht reicht es schon das property in den private-Bereich zu schieben.
Wenigstens mal probieren. ;-) |
AW: Komponenten -- Eigenschaften entfernen
Wenn ich mich recht erinnnere gab es da einen Trick, dass man "irgendwas" auf NIL setzen musste....
Hm, vielleicht mittels RegisterPropertyEditor einen NIL-Property Editor für die Komponente, den Property-Namen und den Datentyp setzen?
Delphi-Quellcode:
RegisterPropertyEditor(TypeInfo(PropertyTyp), TMyComponent, PropertyName, NIL);
Mein Gedächtnis war auch schon mal besser (und StackOverflow ist down(!)). Eine andere Möglichkeit wäre ein Property-Editor für die Komponente, die nur die gewünschten Properties published. Beispiel von Attila: ![]() via a post from Jeroen in 2017: ![]() |
AW: Komponenten -- Eigenschaften entfernen
nil: richtig erinnert
aber ich bin mir nicht sicher, ob es dort (RegisterPropertyEditor) war. Diesen Trick "etwas auf nil setzen", gab es dafür, um ein Property unsichtbar zu machen, so dass es m OI nicht mehr angezeigt wird (kein Editor = keine Anzeige), aber sowas gab es auch, um einen "eigenen" Property-Editor zu entfernen und wieder den Standardeditor anzuzeigen. :gruebel: Ich glaube Erstes war hier richtig, also würde passen. Die Auswahl kann man hier weniger einschränken. Zitat:
Aber es würde so oder so "alle" TBrush erwischen, von anderen Komponenten. Wie gerade nachfogend es jemand erklärte, wird das so also doch nichts. Du müsstest deine komponente ableiten, auch TBrush ableiten und dann in deiner Komponente deinen TMyBrush haben, in welchem das Color nicht published ist, bzw. wo der PropertyEditor entfernt wird. Was aber geht, ist das ganze Brush auszublenden (nicht published, bzw. kein PropertyEditor) oder es auf
Delphi-Quellcode:
zu setzen
stored False
und dafür dann eigene Property, als Weiterleitung zu den Eigenschaften des Brush, welche du speichern willst. [edit] Ja, natürlich wäre es einfacher, das Property garnicht erst in der Klasse zu haben. (nicht "published", siehe nachfolgend) |
AW: Komponenten -- Eigenschaften entfernen
Zitat:
Zitat:
Das wird um einiges Aufwändiger das hin zu bekommen. |
AW: Komponenten -- Eigenschaften entfernen
Das ist Schade. Ich dachte das es einfacher ist.
Trotzdem Danke. Max |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 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