AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ist meine Komponente im Designer selektiert?

Ein Thema von Medium · begonnen am 12. Apr 2018 · letzter Beitrag vom 13. Apr 2018
Antwort Antwort
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#1

Ist meine Komponente im Designer selektiert?

  Alt 12. Apr 2018, 21:34
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?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#2

AW: Ist meine Komponente im Designer selektiert?

  Alt 12. Apr 2018, 22:47
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (12. Apr 2018 um 22:49 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Ist meine Komponente im Designer selektiert?

  Alt 13. Apr 2018, 08:28
Über die OpenToolsAPI kommst du an den Object Inspector, bzw. Form Designer, und den kannst du dann fragen welche Komponente(n) aktuell selektiert sind.
Das ist doch schon mal ein Stichwort zum weiter suchen. Danke!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Ist meine Komponente im Designer selektiert?

  Alt 13. Apr 2018, 12:50
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?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Ist meine Komponente im Designer selektiert?

  Alt 13. Apr 2018, 13:33
Was hast du denn vor?
Es kommt mir komisch vor, dass deine Komponente so stark auf die Designtime fokusiert ist.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Ist meine Komponente im Designer selektiert?

  Alt 13. Apr 2018, 13:48
Zitat:
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?
Solange die IDE nur für Windows angeboten wird, nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#7

AW: Ist meine Komponente im Designer selektiert?

  Alt 13. Apr 2018, 13:53
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.
Solche Dinge gehören dann auch in ein Design-Package und haben in den Sourcen der Komponente nichts verloren. Würdest du die OTA innerhalb der Komponente nutzen, kann diese auch nur innerhalb der IDE genutzt werden, weil damit eine Anhängigkeit zum IDE-Designer hergestellt wird - das will ja keiner. Also musst du dazu erst den gesamten Design-Kram auslagern. Wie das jetzt genau gehen kann, ist aber erheblich von der konkreten Aufgabenstellung abhängig. Spätestens hier wird jede Empfehlung zur Spekulation.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#8

AW: Ist meine Komponente im Designer selektiert?

  Alt 13. Apr 2018, 14:20
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!
Miniaturansicht angehängter Grafiken
leitung.png  
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 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