![]() |
Ist meine Komponente im Designer selektiert?
Aloah.
Ich schreibe noch immer unsere Komponentensammlung auf FMX um. Bei einer würde ich ganz gerne ein paar zusätzliche Dinge zur Designtime einblenden, aber NUR wenn die Komponente gerade im Designer selektiert ist. Ansonsten würde das ein völliges Durcheinander auf dem Formular. In der Property "ComponentState" wurde ich leider nicht fündig, und auch im Netz hat die Suche nichts brauchbares geliefert. (Vor allem weil die Suchbegriffe recht weit gefasste Ergebniskategorien hervorbringen.) Kann ich in meiner Komponente irgend wie erkennen, ob sie im Designer angewählt ist? |
AW: Ist meine Komponente im Designer selektiert?
Nein, nicht in der Komponente.
Das Einzige, was die Komponente weiß ist ComponentState csDesigning (aber nicht innerhalb des Contructors ... dortt muß man Owner.ComponentState nutzen) Und dann noch csLoading usw. aber das kommt immer beim Laden der DFM, egal ob in IDE oder im laufenden Programm. Über die OpenToolsAPI kommst du an den Object Inspector, bzw. Form Designer, und den kannst du dann fragen welche Komponente(n) aktuell selektiert sind. |
AW: Ist meine Komponente im Designer selektiert?
Zitat:
|
AW: Ist meine Komponente im Designer selektiert?
Hmm. Da steht, mann muss die VCL als Dependency in seinem Package mit hinzufügen um die OpenToolsAPI zu nutzen. Mache ich mir damit dann nicht die Plattformunabhängigkeit meiner Komponenten zunichte? Weil zur Runtime brauche ich das ganze ja nicht - da kann das alles weg bleiben.
Und ich finde in der Online-Hilfe partout nicht das entsprechende Interface, das mir Zugriff auf den Designer gäbe. Gibt's da irgendwo noch eine gesonderte, komplette Doku? |
AW: Ist meine Komponente im Designer selektiert?
Was hast du denn vor?
Es kommt mir komisch vor, dass deine Komponente so stark auf die Designtime fokusiert ist. |
AW: Ist meine Komponente im Designer selektiert?
Zitat:
|
AW: Ist meine Komponente im Designer selektiert?
Zitat:
|
AW: Ist meine Komponente im Designer selektiert?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich glaube dann mache ich es mir doch lieber einfach, und führe eine Property ein die bei Bedarf die zusätzlichen Dinge im Designer malt.
Hintergrund ist eine Komponente um Leitungszüge malen zu können. Dafür habe ich eine "Mutter-Komponente" die den Startpunkt definiert, und Kind-Komponenten die als Children untergeordnet die weiteren Stützpunkte bilden. Jede der Komponenten ist auf eine Größe von 16x16 Pixeln begrenz, und kann quasi als Anfasser benutzt werden. Dies mache ich so, damit z.B. eine Leitung die durch ihren Verlauf fast das ganze Formular abdeckt (also die Bounding-Box), aber nur ein paar dünne Linien zeichnet, mir die weitere Bearbeitung nicht unnötig erschwert. Die Anfasser wollte ich halt ganz gerne nur sichtbar machen, wenn ein Knoten aus dem Leitungszug selektiert ist, da diese mir sonst bei komplexeren Anlagenbildern einen Haufen Unübersichtlichkeit bescheren werden. Gerade die Anfasser für die Kurven-Tangenten, die ja schon mal querfeldein liegen können. Im Anhang ein Beispiel vom aktuellen Zustand. Die Farbigen Kreise und schwarzen Linien sind zur Runtime nicht sichtbar, und diese wollte ich zur Designtime eben auch verstecken, wenn kein Segment der Leitung selektiert ist. Aber mit einer Property geht's auch. Weniger schön, aber erheblich weniger Klimmzüge. Danke euch! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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