![]() |
Eigenschaften mehrerer Labels mittels Sender verändern?
Hallo,
ich habe folgende Frage wo ich nicht mehr weiterkomme. Ich habe 10 Labels die man anklicken kann und jedem Label ist ein Panel zugeordnet. Je nach dem welches Label angeklickt wird muss das Label die Farbe Blau bekommen und entsprechendes Panel erscheinen, die anderen 9 Label bekommen die Farbe schwarz und ihre Panels bleiben ausgeblendet. Klickt man auf Label7, wird es blau, alle anderen schwarz und das Panel7 erscheint. Klickt man auf Label8, wird es blau, alle anderen schwarz und das Panel8 erscheint. Wie mache ich das? Muss wohl irgendwie mit dem Sender gehen, aber irgendwie stehe ich auf dem Schlauch. Habe folgendes überlegt:
Delphi-Quellcode:
if Label(Sender) = 7 then
Label7.Color := Blue; Panel7.Visible := True; else begin //den Rest etwa mit einer Schleife schwarz setzen und die Panels ausblenden? end; Danke! |
AW: Eigenschaften mehrerer Labels mittels Sender verändern?
Pack dir alle Label in eine Liste und die zugehörigen in eine weitere Liste (ein Dictionary wäre da noch einfacher).
Jetzt suchst du in der Label-Liste den Index des ausgewählten Labels. Jetzt gehst du durch beide Listen und setzt die Farbe bei jedem Label auf schwarz, nur wenn du an dem ermittelten Index kommst, dann blau und jedes Panel setzt du unsichtbar, nur wenn du an dem ermittelten Index kommst auf sichtbar. |
AW: Eigenschaften mehrerer Labels mittels Sender verändern?
Zitat:
|
AW: Eigenschaften mehrerer Labels mittels Sender verändern?
Kompliziert?
Delphi-Quellcode:
Allen Labeln den 'Label1Click'-Eventhandler im 'OnClick' Event zuweisen.
Procedure TForm1.SetExclusiveLabelAndPanelColor(aLabel : TLabel; aExclusiveColor, aDisableColor : TColor);
var i : Integer; c : TColor; begin for i:=0 to myLabel.Count-1 do begin if myLabel[i]=aLabel then c := aExclusiveColor else c := aDisableColor; myLabel[i].Color := c; myPanel[i].Color := c; end end; Procedure TForm1.Label1Click (Sender : TObject); begin if Sender is TLabel then SetExclusiveLabelAndPanelColor(TLabel(Sender), clBlue, clBlack); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 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