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 Aussehen mehrerer Labels gesteuert verändern (https://www.delphipraxis.net/62331-aussehen-mehrerer-labels-gesteuert-veraendern.html)

Hansa 3. Feb 2006 00:51


Aussehen mehrerer Labels gesteuert verändern
 
Thread-Schließer hat wieder zugeschlagen. 8)

Zitat:

es geht um Mauspositionen. Wie und wo kann man auswerten, ob sich der Mauszeiger über einem Label befindet ?
Das ändern der Farbe ist (fast) geklärt. Allerdings fehlt der Rest (nur FONT geht).

Zitat:

Wieso kriege ich hier :

Delphi-Quellcode: markieren
TLabel (FindComponent (lblKomp.Name)).Canvas.Brush.Color := clRed;
TLabel (FindComponent (lblKomp.Name)).Font.Color := clBlue;

zwar den Font geändert, die Hintergrundfarbe aber nicht ?
Momentan wird also nur die Label Farbe geändert wenn ich mich mit der Maus darüber bewege.

turboPASCAL 3. Feb 2006 01:05

Re: Aussehen eines Labels gesteuert verändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nochmal: Anhang!

und:

Code:
TLabel(FindComponent(lblKomp.Name))[color=#ff0000].Color[/color] := clRed;

Hansa 3. Feb 2006 01:18

Re: Aussehen eines Labels gesteuert verändern
 
Wie gesagt, der Font geht. Rest eben nicht. Dank OOP kann ich die Prozedur jedem Control zuweisen, siehe anderen Thread. Das kann nicht mehr viel sein.

Tau 3. Feb 2006 01:31

Re: Aussehen eines Labels gesteuert verändern
 
Hallo Hansa

Was ist am dem Vorschlag vom turboPASCAL nicht in Ordnung?

Ich denke ist eigentlich genau das was du suchst.

Tau
:hi:

Hansa 3. Feb 2006 12:59

Re: Aussehen eines Labels gesteuert verändern
 
Ah ja, Color. Wozu ist denn dann überhaupt das Brush.Color da ? Jetzt habe ich allerdings noch ein paar Labels, da soll ein Rahmen drumrum. Habe schon viel rumgeractangelt :mrgreen: aber es will nicht gehen. Habe die Labels mit FindComponent mal aufgeteilt und zeige die mit Rahmen vorerst in anderer Farbe an. Ist das richtig so ? Allerdings fehlt, wie gesagt der Rahmen. Der müßte je nach Lage eben im MouseEnter gezeichnet werden und beim MouseLeave wieder verschwinden. Wie baue ich das jetzt noch ein ?

turboPASCAL 3. Feb 2006 14:35

Re: Aussehen eines Labels gesteuert verändern
 
Ja Ne, ist klar. Wenn du auf dem Canvas eines Labels zeichnest wird es von der Label-Zeichen Routiene des Labels wieder übermalt. Um so etwas zu umgehen soltest du eine Komponente schreiben die du von einem Label ableitest und in der Paintmethode deine Vorstellungen unterbringst. Es geht natürlich auch anders, ist aber etwas komplizeirter (Hooks).

Hansa 3. Feb 2006 20:24

Re: Aussehen eines Labels gesteuert verändern
 
Das mit dem Rand um ausgewählte Labels geht immer noch nicht. Aber es ist noch was anderes aufgetaucht : habe die Labels nach gewissen Kriterien gruppiert. Wie kann ich nun diesen Label-Gruppen auf einen Schlag das globalere OnMouseEnter/OnMouseLeave zuweisen ?

@Schließmeister :mrgreen: Titel ist etwas verändert worden.

Keldorn 3. Feb 2006 21:29

Re: Aussehen mehrerer Labels gesteuert verändern
 
wenn du einen Rand haben willst, nimm ein Tstatictext.

Was hindert dich daran, alle Labels mit shift anzuklicken und die beiden Ereignisse allen markierten Labels zuzuweisen? Wenn du die Labels ordentlich benannt hast, kannst da auch alle labels in der Objekthieracrhie markieren. Oder alles per code und die Form.controls durchlaufen und auf is tlabel prüfen und dann diesen gefundenen Labels die ereignisse zuweisen.

Mfg Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 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 by Thomas Breitkreuz