![]() |
Canvas als Komponenten-Eigenschaft
Hallo Leute, ich weiß zwar nicht ob das hier an dem richtigen Platz ist aber ich weiß nicht wohin. Wenn es woanderst hingehört bitte verschieben.
Jetzt zu meinem Problem, ich habe eine Non-Visuelle-Komponente erstellt die auf eine Canvas einer anderen Komponente zeichnet. Meine Problem ich will die Canvas als Property im OI auswählen können aber es funktioniert mit TCanvas nicht, wenn ich allerdings eine PaintBox nehme und als Property dann die TPaintBox nehmen kann ich, wenn eine PaintBox auf dem Formular ist diese auswählen. Das Funktioniert so ganz gut, nur bin ich auf die Canvas der PaintBox eingeschrängt, wenn ich jetzt die Canvas eines Images will geht das nicht. Hat jemand eine Idee wie ich das allgemiener machen kann? Danke Sebastian |
Re: Canvas als Komponenten-Eigenschaft
Könnte daran liegen, das TCanvas keine Komponente ist.
|
Re: Canvas als Komponenten-Eigenschaft
Das hab ich mir auch schon überlegt, gibt es dennoch eine Möglichkeit das das funktioniert?
|
Re: Canvas als Komponenten-Eigenschaft
Man könnte versuchen einen eigene Property-Editor zu schreiben, der in den published-Eigenschaften der Komponenten nach Cnavas-Eigenschaften sucht.
|
Re: Canvas als Komponenten-Eigenschaft
Kannst du hierzu mal ein Beispiel posten, hab gerade keine Ahnung wie das fuktioniert, bzw. funktionieren kann.
|
Re: Canvas als Komponenten-Eigenschaft
|
Re: Canvas als Komponenten-Eigenschaft
Den Autor des Artikels kenn ich irgenwoher :mrgreen:
|
Re: Canvas als Komponenten-Eigenschaft
erst mal vielen dank für die Hilfe,
muss mal schauen wie ich das machen kann Sebastian |
Re: Canvas als Komponenten-Eigenschaft
Das mit dem Property-Editor hab ich jetzt soweit verstanden, nur wie suche ich im Design-Modus in den published-Eigenschaften der Komponenten nach Cnavas-Eigenschaften?
Sebastian |
Re: Canvas als Komponenten-Eigenschaft
Hi,
bist du dir sicher, dass du die published-Eigenschaften meinst? Die Eigenschaft Canvas ist bei der TPaintbox nämlich unter public deklariert. Bei published-Eigenschaften müsste es aber so gehen:
Delphi-Quellcode:
uses
TypInfo; ... var Info: PTypeInfo; const PropName= 'Color'; begin Info := TypeInfo(TPaintbox); Showmessage(Format('Color ist published: %s', [BoolToStr(Assigned(GetPropInfo(Info, PropName)), True)])); |
Re: Canvas als Komponenten-Eigenschaft
Recht habt ihr, ich meinte die public-Eigenschaft, müsste doch aber ähnlich funktionieren, oder?
|
Re: Canvas als Komponenten-Eigenschaft
So denk ich hab jetzt alles so weit.
Aber gleich das nächste, wie bekomm ich einen Property-Editor hin. Ich möchte ihn selber machen weiß nur nicht wie ich zu dem
Delphi-Quellcode:
was ich selber geschrieben habe eine .dfm dazu bekomme.
TCanvasEditorDlg = class(TForm)
|
Re: Canvas als Komponenten-Eigenschaft
Lass dir die Form vom Formulardesigner erzeugen
|
Re: Canvas als Komponenten-Eigenschaft
Wie wär es denn mit dem Vorfahr aller Objecte mit Canvas Eigenschaft?
Also ein Vorfahr von button, image, usw. Die müsste man doch auf dem Formular erkennen können. |
Re: Canvas als Komponenten-Eigenschaft
Das wäre gut,
hättest du ne idee welcher das wäre? |
Re: Canvas als Komponenten-Eigenschaft
Na im Menu neues Formular
|
Re: Canvas als Komponenten-Eigenschaft
Zitat:
|
Re: Canvas als Komponenten-Eigenschaft
Das mit dem Formular und der .dfm hat funktioniert.
Es ging gerader um Zitat:
|
Re: Canvas als Komponenten-Eigenschaft
Kuck mal in der Delphi Hilfe:
:arrow: Such nach TImage. :arrow: Klick auf Eigenschaften :arrow: Such da drin nach Canvas und guck, unter welchem Vorfahr das steht! |
Re: Canvas als Komponenten-Eigenschaft
Hmm in de Delphi-Hilfe steh nur das TObjekt als vorfahre, das geht aber für das was ich will nicht.
Kann ich eine Liste der Komponenten die Auf dem Aktuellen Formular sind im Designmodus erzeugen und die dann nach der property Canvas durchsuchen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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 by Thomas Breitkreuz