Delphi-PRAXiS
Seite 1 von 2  1 2      

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 aktives Visble eines Label zur Designzeit (https://www.delphipraxis.net/181323-aktives-visble-eines-label-zur-designzeit.html)

Helmi 6. Aug 2014 11:41

aktives Visble eines Label zur Designzeit
 
Hallo,

ich habe mir Edits gebastelt, die wie ein TLabeledEdit ein Label besitzen. Nur meine Edits haben zwei Labels (Pre und Post)
und die Labels könnten über zwei Properties des Edits sichtbar/unsichtbar gemacht werden.

Soweit so gut, zur Laufzeit funktioniert alles wunderbar.

Nur während der Designzeit funktoniert das Visible der Labels nicht (wie auch bei einem normalen Label).

Wie könnt ich zur Designzeit trotzdem das Label verschwinden lassen?
was ich beim debuggen der VCL rausgefunden habe, wird das Verstecken des Labels zur Designzeit verhindert, nur wie könnte
man das umgehen?

Darlo 6. Aug 2014 11:44

AW: aktives Visble eines Label zur Designzeit
 
Gibt es in XE2 die Eigenschaft DesignVisible?

Helmi 6. Aug 2014 11:48

AW: aktives Visble eines Label zur Designzeit
 
Zitat:

Zitat von Darlo (Beitrag 1267687)
Gibt es in XE2 die Eigenschaft DesignVisible?

nein

Medium 6. Aug 2014 11:58

AW: aktives Visble eines Label zur Designzeit
 
Wenn du das eh schon in eine eigene Komponente gekapselt hast, würde ich TLabel ganz raus werfen. Einfach per TextOut() auf den Parent-Canvas und fertig ist die Laube, bei ausgeschalteter Beschriftung einfach nicht TextOuten.

Wenn es um die Strukturierung der Properties geht, ließe sich im Zweifel ja auch recht einfach eine eigene kleine Label-Klasse bauen. So wahnsinnig viel brint TLabel ja nicht mit, und viel mehr als Positionierung, Font, Alignment und Caption braucht man meistens eh nicht. Das ist fix selbst gestrickt.

stahli 6. Aug 2014 13:07

AW: aktives Visble eines Label zur Designzeit
 
Wenn Du bei Deiner Lösung mit den Labels bleiben willst könntest Du im DesignMode deren Parents evtl. einfach auf nil setzen.

himitsu 6. Aug 2014 13:42

AW: aktives Visble eines Label zur Designzeit
 
Man kann natürlich das TLabel auch ableiten, ihm ein DesinVisible-Property verpassen und die stellen in TLabel.Paint entsprechend anpassen.

stahli 6. Aug 2014 13:52

AW: aktives Visble eines Label zur Designzeit
 
... ich wäre dann aber nicht sicher, ob die IDE dann nicht noch irgendwelche Maus-/Tastaturereignisse zuordnet (selbst wenn nichts sichtbares gemalt wird) ...

Helmi 8. Aug 2014 10:06

AW: aktives Visble eines Label zur Designzeit
 
ich werd´s mal mit parent = nil probieren - muss mir nur zuvor den alten parent merken

Whookie 8. Aug 2014 17:56

AW: aktives Visble eines Label zur Designzeit
 
...oder du erzeugst bzw. zerstörst die TLabels in der entsprechenden SetVisible-Methode ...

Helmi 8. Aug 2014 18:58

AW: aktives Visble eines Label zur Designzeit
 
ich hab´s jetzt so gelöst:

Delphi-Quellcode:
procedure TLabeledMaskEdit.SetVisiblePreLabel(Value: Boolean);
begin
  //Wird aufgerufen, wenn sich die Variable "FVisiblePreLabel" ändert
  FVisiblePreLabel     := Value;

  //FPreEditLabel beschreiben
  FPreEditLabel.Visible := FVisiblePreLabel;

  If csDesigning in ComponentState then
    If FVisiblePreLabel then
      FPreEditLabel.Parent := FLabel_Parent
    else
      FPreEditLabel.Parent := nil;
end;
Ich merk mir in der SetParent-Procedure den Parent und bei Visible wird der Parent gesetzt, ansonsten Nil


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr.
Seite 1 von 2  1 2      

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