Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Child-Controls während DesignTime anklickbar (https://www.delphipraxis.net/177998-child-controls-waehrend-designtime-anklickbar.html)

Andreas L. 10. Dez 2013 09:13

Child-Controls während DesignTime anklickbar
 
Hallo,

ich habe mir eine Komponente von TPanel abgeleitet. Auf diesem Panel werden bereits während der DesignTime u. a. Buttons erstellt. Das funktioniert auch, nur sind die Buttons in der IDE klickbar. Gibt es eine Möglichkeit ein Control während der DesignTime zu deaktivieren ohne dessen Enabled-Eigenschaft zu verwenden (denn damit wird der Button auch deaktiviert dargestellt)?

Schöne Grüße und schon mal Danke,
Andreas

Perlsau 10. Dez 2013 10:48

AW: Child-Controls während DesignTime anklickbar
 
Das verstehe ich jetzt nicht: Wieso möchtest du erreichen, daß eine Komponente auf deinem Formular nicht mehr anwählbar ist? In meinem RadStudio2009 gibt es unter Bearbeiten den Menüpunkt Elemente fixieren. Das betrifft aber alle auf der Form befindlichen Komponenten: die sind dann nicht mehr editierbar.

Auch wenn du zur Designtime das Property Enabled einer Komponente auf False setzt, bleibt diese noch immer anwähl- und bearbeitbar.

Also: Was möchtest du wirklich? Worum geht es hier?

Daniel 10. Dez 2013 10:55

AW: Child-Controls während DesignTime anklickbar
 
Ich verstehe es so, dass es um eine Komponente geht, die sich aus mehreren fixen Elementen zusammensetzen soll. Und diese Unter-Elemente, die vollständig von der Komponente konfiguriert und verwaltet werden, sollen im Formular-Designer zwar sichtbar, aber nicht veränderbar sein.

Andreas L. 10. Dez 2013 11:02

AW: Child-Controls während DesignTime anklickbar
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hi Perlsau,

die Buttons sollen schon noch editierbar sein. Ich meinte das die Buttons nicht wie zur Laufzeit reagieren sollen. z. B. bei MouseOver ändert sich die Farbe oder bei Klick wird der Button im "Gedrückt"-Stil angezeigt. Siehe Anhang. Hast du eine Idee was man da machen kann.

So sollen die Buttons während der DesignTime immer aussehen, egal ob sich die Maus darüber befindet oder gar geklickt wird:
Anhang 40327

Und so siehts derzeit aus:

Anhang 40328
Hover

Anhang 40329
Geklickt

Zitat:

Zitat von Daniel (Beitrag 1239262)
Ich verstehe es so, dass es um eine Komponente geht, die sich aus mehreren fixen Elementen zusammensetzen soll. Und diese Unter-Elemente, die vollständig von der Komponente konfiguriert und verwaltet werden, sollen im Formular-Designer zwar sichtbar, aber nicht veränderbar sein.

Genau so ist es :)

Perlsau 10. Dez 2013 11:15

AW: Child-Controls während DesignTime anklickbar
 
Zwar habe ich dieselbe IDE wie du (2009pro), kann es hier aber nicht nachvollziehen, daß ein Button (oder BitBtn) zur Designtime auf MouseOver reagiert. Bei mir bleibt das Aussehen der Buttons zur Designtime immer gleich. Einzig wenn ich einen Button auf Enabled := False stelle, ändert sich dessen Erscheinungsbild, wenn es sich z.B. um einen BitBtn mit 3 Glyphs handelt.

Offenbar ist bei mir Standard, was du erreichen möchtest. Jetzt müssen wir nur noch herausfinden, wie du es angestellt hast, daß deine Buttons (oder andere Komponenten) zur Designtime so reagieren.

Eines fällt mir jetzt erst auf: Oben schreibst du: "die Buttons sollen schon noch editierbar sein". Dann aber stimmst du Daniels Interpretation "sollen im Formular-Designer zwar sichtbar, aber nicht veränderbar sein" zu, indem du sagst: "Genau so ist es". Irgendwie kann ich mich des Eindrucks nicht erwehren, daß sich diese beiden Aussagen widersprechen: Also entweder sollen die Buttons weiterhin editierbar sein oder eben nicht ... :cyclops:

himitsu 10. Dez 2013 14:43

AW: Child-Controls während DesignTime anklickbar
 
Owner der Komponenten ist die Form und dazu noch Delphi-Referenz durchsuchenTComponent.SetDesigning.
Hier aber nicht vergessen, daß die Sub-Komponenten nicht mehr im Constuktor erstellt werden sollten, sondern im Loadet (wenn csLoading und Subkomponenten noch nicht vom DFM-Loader geladen) oder im AfterConstruction (wenn kein csLoading).

Oder du erstellst die Komponenten über die ToolsAPI, bzw. lässt sie dir FormEditor erstellen.


Eventuell auch noch mit SetSubComponent arbeiten (dabei ist der Owner dann dein Panel).


Oder du verwendest ein Frame, anstatt des Panels.

Andreas L. 10. Dez 2013 16:10

AW: Child-Controls während DesignTime anklickbar
 
Zitat:

Zitat von himitsu (Beitrag 1239295)
Owner der Komponenten ist die Form und dazu noch Delphi-Referenz durchsuchenTComponent.SetDesigning.

Das ist die Lösung. Owner der Buttons auf das Eltern-Element (Self) setzen und außerdem SetDesigning "überschreiben" und damit den 2. Parameter immer auf True setzen. Vielen Dank :D

Zitat:

Zitat von Perlsau (Beitrag 1239266)
Eines fällt mir jetzt erst auf: Oben schreibst du: "die Buttons sollen schon noch editierbar sein". Dann aber stimmst du Daniels Interpretation "sollen im Formular-Designer zwar sichtbar, aber nicht veränderbar sein" zu, indem du sagst: "Genau so ist es". Irgendwie kann ich mich des Eindrucks nicht erwehren, daß sich diese beiden Aussagen widersprechen: Also entweder sollen die Buttons weiterhin editierbar sein oder eben nicht ... :cyclops:

Die Buttons sollen verschoben und in der Größe geändert werden können. Aber z. B. Hover-Effekte sollen zur Design-Time nicht sichtbar sein. So meinte ich das mit editierbar sein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 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