![]() |
CategoryPanel, disabled Komponenten
Ich habe hier ein kleines Problemchen mit der TCategoryPanelGroup und den TCategoryPanels bei Delphi 11 (alle verfügbaren Patches installiert).
Wenn ich auf einem CategoryPanel eine Komponente (z.B. ein TEdit) hinzufüge, und die Eigenschaft Enabled des Edits im Objektinspektor auf False setze, dann ist es nicht erst nur zur Laufzeit disabled, sondern auch schon zur Designzeit. D.h. ich kann das Edit nicht mehr im Formdesigner auswählen und bearbeiten, sondern nur noch über den Eintrag im Struktur-Baum. Kann das jemand nachvollziehen (dann wäre das wohl was für ein Ticket), oder habe ich bei mir irgendwas verstellt? :gruebel: In 10.4 (CE) kann ich das nicht reproduzieren, da funktioniert alles wie erwartet. |
AW: CategoryPanel, disabled Komponenten
Hi Gausi
Ich hab das eben so gut wie möglich unter vorhandenen Gegebenheiten nachgespielt, die da sind:
Gruss Delbor Nachtrag: Wenn das CategoryPanelGroup Disabled ist, lässt es sich zur Designzeit normal bearbeiten (auf- und zuklappen), nicht aber zur Laufzeit. |
AW: CategoryPanel, disabled Komponenten
Hm, kann sein, dass ich mich nicht klar genug ausgedrückt habe.
Es ging mir um eine einzelne disabled-Komponente (direkt) auf einem enabled-CategoryPanel. Dieses (z.B.) Edit wird dann schon zur Designzeit ausgegraut und ist nicht mehr klickbar. Wie das aussieht, wenn ich bei mir noch noch Groupboxen, PageControls o.ä. drauf habe, weiß ich nicht. Mein Szenario ist eine PageControl mit je einer CategoryPanelGroup auf den einzelnen TabSheets - also umgekehrt wie das, was du beschreibst. Ich habe das aber auch mit einem Minimal-Projekt nachvollziehen können: Form -> CategoryPanelGroup -> CategoryPanel -> Edit. Ich füge das ggf. heute Abend mal per Anhang hinzu ... |
AW: CategoryPanel, disabled Komponenten
Ist aber doch Standard.
Wenn das Parent eines Objekt auf disabled steht ist alles was drauf liegt das ebenfalls war noch nie anders. Ist ein unabhängiges verhalten von Delphi. |
AW: CategoryPanel, disabled Komponenten
Das Parent (in dem Fall das CategoryPanel) ist Enabled. Nur eine Komponente darauf ist es nicht, bzw. soll es nicht sein.
Und zur Designzeit war das afaik noch nie so, dass eine Komponente, bei der man im Objektinspektor "Enabled = False" gesetzt hat, auch im Formdesigner (also innerhalb der IDE) nicht mehr anklickbar war ... Es geht mir ausdrücklich nicht um das Verhalten zur Laufzeit. Vielleicht ist das hier auch die falsche Rubrik, "Delphi-IDE" wäre evtl. passender. |
AW: CategoryPanel, disabled Komponenten
Ich kann das geschilderte Problem nachvollziehen. Da hat wohl jemand vergessen, den ComponentState auszuwerten.
|
AW: CategoryPanel, disabled Komponenten
Ja, kann das hier unter D11.1 P1 nachvollziehen:
- TCategoryPanelGroup - zwei Panels darin erstellen - in das erste ein TEdit legen - Dann das TEdit auf Enabled=False setzen --> nun kann man es im Formdesigner nicht mehr auswählen. Aber die Auswahl via Strukturansicht bzw. Objektinspektor geht und so lassen sich dann auch Eigenschaften wieder ändern. |
AW: CategoryPanel, disabled Komponenten
Neu eingefügte Edits
oder wenn gespeichert und die Unit neu geladen? Wenn die Komponente (das Panel) die Subkomponenten nicht richtig verwalet, kann es passieren, dass das Edit garnicht weiß, dass es im Edit-Modus ist und sich somit so verhält, als wäre es zur Laufzeit. Normal empfangen disablete Komponenten keine Maus/Tastaturereignisse und können somit auch via Klick nicht fokusiert werden (man klickt quasi durch, auf den Parent). Im DesignModus ist die Komponente also nicht wirklich disabled (und leider vergessen einige Komponenten sich dort dennoch wie Disabled darzustellen, genauso, wie sie bei Visible=False im Editor nicht wirklich unsichtbar sind) Und ja, es lässt sich nachstellen: TCategoryPanelGroup -> eine/zwei Bereiche erstellen -> ein TEdit direkt rein -> Enabled = False -> und peng Man könnte sich jetzt z.B. via Debugger in die IDE hängen und schauen was die Komponente intern sagt, oder sich einen eignen TEdit-Nachfahren bauen, welcher seinen ComponentState (z.B. csDesigning/csDesignInstance) anzeigt. |
AW: CategoryPanel, disabled Komponenten
Danke fürs testen bzw. bestätigen. Beim weiteren rumspielen fürs Ticket habe ich festgestellt, dass das Ansteuern per Tab oder Pfeiltasten weiter funktioniert. Ebenso sind dann die Resize-Anfasser aktiviert (darüber könnte man das letztlich auch noch per Maus verschieben), und verschieben per Strg+Pfeiltasten geht auch. Nur die Maus-Events scheinen ignoriert zu werden.
Hab mal ein Ticket aufgemacht - mal sehen, was draus wird. Groß selbst dran debuggen möchte ich nicht. Dazu fehlt mir die Erfahrung, und der Leidensdruck ist nicht groß genug für die ein oder zwei Controls, die ich per Default deaktiviert haben will auf meiner Form. :stupid: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 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