AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Die Farbe von TLabel mit einem Click ändern ?
Thema durchsuchen
Ansicht
Themen-Optionen

Die Farbe von TLabel mit einem Click ändern ?

Ein Thema von smart · begonnen am 17. Mär 2005 · letzter Beitrag vom 18. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#1

Die Farbe von TLabel mit einem Click ändern ?

  Alt 17. Mär 2005, 19:52
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;
Heike Kretschmann
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#2

Re: Die Farbe von TLabel mit einem Click ändern ?

  Alt 17. Mär 2005, 20:01
Versuch mal den Integer-Wert mit Delphi-Referenz durchsuchenIntToColor zu konvertieren

edit: ungetestet!

edit2: Und bist du dir sicher, dass dein Label auf "TLabel" heißt? Eventuell musst du das noch in "Label1" ändern
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#3

Re: Die Farbe von TLabel mit einem Click ändern ?

  Alt 17. Mär 2005, 20:04
Warum nutzt du nicht direkt TColor? Und das "With...Do" kannst du dir bei einem Befehl auch sparen.

MfG Pr0g
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#4

Re: Die Farbe von TLabel mit einem Click ändern ?

  Alt 17. Mär 2005, 20:06
@malo: Wieso ? Sie will doch alle Farben ändern

@smart: wenn man ermittelt, wie viele labels es gibt und dann die farben nur noch abändern.
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Die Farbe von TLabel mit einem Click ändern ?

  Alt 17. Mär 2005, 20:14
Ja, ich habe den Fehler: Instanz-Variable 'Color' in diesem Zusammenhang nicht verfügbar. Viel kann ich mit diesem Fehler leider nicht anfangen.
Heike Kretschmann
  Mit Zitat antworten Zitat
BenjaminH

Registriert seit: 14. Okt 2004
Ort: Freiburg im Breisgau
713 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Die Farbe von TLabel mit einem Click ändern ?

  Alt 17. Mär 2005, 20:15
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;
Benjamin
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#7

Re: Die Farbe von TLabel mit einem Click ändern ?

  Alt 17. Mär 2005, 20:20
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:
  private
    { Private-Deklarationen }
    procedure ChangeLabelColors(const AColor: TColor);
Dann die Implemetierung der Prozedur:
Delphi-Quellcode:
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;
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:
ChangeLabelColors(clNavy); Edit: @BenjaminH: Warum machst den Parameter als "var"?
Edit2: Achso, das war ja oben schon.

MfG Pr0g
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Die Farbe von TLabel mit einem Click ändern ?

  Alt 17. Mär 2005, 20:26
@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.
Heike Kretschmann
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Die Farbe von TLabel mit einem Click ändern ?

  Alt 18. Mär 2005, 00:08
Zitat von Pr0g:
Edit: @BenjaminH: Warum machst den Parameter als "var"?
Edit2: Achso, das war ja oben schon.
Das var kann man in dem Fall auch weglassen, da ein Wertparameter auch reicht. Wenn man aber möchte, kann man stattdessen const verwenden.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#10

Re: Die Farbe von TLabel mit einem Click ändern ?

  Alt 18. Mär 2005, 00:54
Zitat von Binärbaum:
Das var kann man in dem Fall auch weglassen, da ein Wertparameter auch reicht. Wenn man aber möchte, kann man stattdessen const verwenden.
Schon klar, habe ich ja oben im Code auch gemacht. Hatte mich nur gewundert , warum er es als "var" hatte (gerade weil es keinen Sinn machte), dann aber gesehen, dass er warscheinlich einfach den Code aus dem ersten Post übernommen hatte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 Uhr.
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