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 TPanel in Komponente zur Design-Time verstecken (https://www.delphipraxis.net/174164-tpanel-komponente-zur-design-time-verstecken.html)

pustekuchen 8. Apr 2013 10:13

TPanel in Komponente zur Design-Time verstecken
 
Guten Tag,

ich erstelle grade eine VCL-Komponente in der ein zusätzliches TPanel zur Laufzeit erzeugt wird.

Dieses Panel wird mir trotz das die Visible Eigenschaft auf false gesetzt ist, im VCL-Designer angezeigt (Was ja auch Allgemein für Komponenten sinnvoll ist, diese weiterhin im VCL Designer anzuzeigen).

Jedoch möchte ich dieses Panel in bestimmten Fällen nicht anzeigen.

Könnt ihr mir da einen Tipp geben?

Mit freundlichen Grüßen

Uwe Raabe 8. Apr 2013 10:19

AW: TPanel in Komponente zur Design-Time verstecken
 
Kommt drauf an, was du erreichen willst, aber da ein Panel im Designer immer angezeigt wird, hilft vielleicht:

Delphi-Quellcode:
MyPanel.Height := 0;

DeddyH 8. Apr 2013 10:19

AW: TPanel in Komponente zur Design-Time verstecken
 
Wieso wird denn ein Panel, das zur Laufzeit erzeugt wird, im VCL-Designer angezeigt? Habe ich da was falsch verstanden?

pustekuchen 8. Apr 2013 12:14

AW: TPanel in Komponente zur Design-Time verstecken
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1210507)
Kommt drauf an, was du erreichen willst, aber da ein Panel im Designer immer angezeigt wird, hilft vielleicht:

Delphi-Quellcode:
MyPanel.Height := 0;

Ja, das hab ich auch schon als Alternativlösung..

Zitat:

Zitat von DeddyH (Beitrag 1210508)
Wieso wird denn ein Panel, das zur Laufzeit erzeugt wird, im VCL-Designer angezeigt? Habe ich da was falsch verstanden?

Das Panel wird im Konstruktor der Komponente erzeugt.

ConnorMcLeod 8. Apr 2013 12:17

AW: TPanel in Komponente zur Design-Time verstecken
 
Dieselbe Frage (von DeddyH) ist mir auch durch den Kopf gegangen.
Im constructor der Komponente könnte man schreiben
Delphi-Quellcode:
if (not csDesigning in Self.ComponentState) then
begin
  pnlLaufzeit.Create(Self);
end;
und überall, wo auf das Panel Bezug genommen wird, mittels Assigned(pnlLaufzeit) prüfen, ob es erzeugt wurde.
Dabei fällt mir ein ... wenn das Panel keinen Parent hat, müßte es unsichtbar sein, oder?

pustekuchen 8. Apr 2013 12:25

AW: TPanel in Komponente zur Design-Time verstecken
 
Zitat:

Zitat von ConnorMcLeod (Beitrag 1210553)
Dieselbe Frage (von DeddyH) ist mir auch durch den Kopf gegangen.
Im constructor der Komponente könnte man schreiben
Delphi-Quellcode:
if (not csDesigning in Self.ComponentState) then
begin
  pnlLaufzeit.Create(Self);
end;
und überall, wo auf das Panel Bezug genommen wird, mittels Assigned(pnlLaufzeit) prüfen, ob es erzeugt wurde.

Danke, das hilft mir weiter :)

Zitat:

Zitat von ConnorMcLeod (Beitrag 1210553)
Dabei fällt mir ein ... wenn das Panel keinen Parent hat, müßte es unsichtbar sein, oder?

Ja, so ist es.


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