![]() |
Die Farbe von TLabel mit einem Click ändern ?
Hallo Alle zusammen!
Ich möchte die Farbe mehrer TLabel auf einer Form mit einem Click ändern und habe mir folgende procedure geschrieben. Leider klappt die Sache nicht. Was mache ich falsch?
Delphi-Quellcode:
procedure TForm1.MyLabel(var Farbe: Integer);
begin With TLabel do begin Color := Farbe; end; end; //Aufruf procedure TForm1.Button1Click(Sender: TObject); Var Farbton: Integer; begin Farbton := 59233; MyLabel(Farbton); end; |
Re: Die Farbe von TLabel mit einem Click ändern ?
Versuch mal den Integer-Wert mit
![]() edit: ungetestet! edit2: Und bist du dir sicher, dass dein Label auf "TLabel" heißt? Eventuell musst du das noch in "Label1" ändern :zwinker: |
Re: Die Farbe von TLabel mit einem Click ändern ?
Warum nutzt du nicht direkt TColor? Und das "With...Do" kannst du dir bei einem Befehl auch sparen.
MfG Pr0g |
Re: Die Farbe von TLabel mit einem Click ändern ?
@malo: Wieso ? Sie will doch alle Farben ändern :zwinker:
@smart: wenn man ermittelt, wie viele labels es gibt und dann die farben nur noch abändern. |
Re: Die Farbe von TLabel mit einem Click ändern ?
Ja, ich habe den Fehler: Instanz-Variable 'Color' in diesem Zusammenhang nicht verfügbar. Viel kann ich mit diesem Fehler leider nicht anfangen.
|
Re: Die Farbe von TLabel mit einem Click ändern ?
Versuchs mal so
Delphi-Quellcode:
procedure TForm1.MyLabel(var Farbe: Integer);
Var i:Integer; begin for i:=0 to COmponentCount-1 do If Components[i] is TLabel Then TLabel(Components[i]).Color := Farbe; end; |
Re: Die Farbe von TLabel mit einem Click ändern ?
Du greifst auch einfach nur auf die Klasse TLabel zu und nicht auf eine spezielle Instanz, das geht natürlich nicht. Schreib folgendes in den private-Abschnitt deiner Form:
Delphi-Quellcode:
Dann die Implemetierung der Prozedur:
private
{ Private-Deklarationen } procedure ChangeLabelColors(const AColor: TColor);
Delphi-Quellcode:
Ich habe jetzt mal Font.Color genommen, da du warscheinlich die Schrfitfarbe und nicht die Hintergrundfarbe ändern willst. Aufrufen kannst du das ganze dann so:
procedure TForm1.ChangeLabelColors(const AColor: TColor);
var i: Integer; begin for i := 0 to ComponentCount - 1 do if (Components[i] is TLabel) then (Components[i] as TLabel).Font.Color := AColor; end;
Delphi-Quellcode:
Edit: @BenjaminH: Warum machst den Parameter als "var"?
ChangeLabelColors(clNavy);
Edit2: Achso, das war ja oben schon. MfG Pr0g |
Re: Die Farbe von TLabel mit einem Click ändern ?
@BenjaminH und @Pr0g vilen Dank für Euere Mühe. Es klappt beides. Ich hatte vergessen die Komponenten zu zählen, wenn ich dass richtig begriffen habe.
|
Re: Die Farbe von TLabel mit einem Click ändern ?
Zitat:
MfG Binärbaum |
Re: Die Farbe von TLabel mit einem Click ändern ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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