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 Alle Komponenten einer Application ändern (https://www.delphipraxis.net/74095-alle-komponenten-einer-application-aendern.html)

Dragon27 27. Jul 2006 23:05


Alle Komponenten einer Application ändern
 
Hallo habe folgenden Code gefunden:

Delphi-Quellcode:

  for I := 0 to chatform.ComponentCount-1 do begin
    if chatform.Components[I] is TLabel then
      TLabel(chatform.Components[I]).Font.Color := clred;
      end;
Hier werden alle Labels auf Rot gesetzt die im Formular Chatform sind. Ich würde aber gerne alle Labels Programmweit umstellen. Geht das?
Bei über 23 Formen wird das unübersichtlich jedes einzeln aufzurufen.

Danke für die Antworten

Martin K 27. Jul 2006 23:14

Re: Alle Komponenten einer Application ändern
 
Moin,

theoretisch müsste das dann gehen, indem du chatform durch Application ersetzt.
Kann aber auch sein, dass Du erst alle Komponenten der Application als TForm durchgehen musst und dann von den jeweiligen Forms eben die Labels...

Zacherl 27. Jul 2006 23:14

Re: Alle Komponenten einer Application ändern
 
Versuch mal statt "chatform" "Application" zu benutzen.

Florian

//Edit: :shock: Kein roter Kasten :roll:

Michael Habbe 27. Jul 2006 23:17

Re: Alle Komponenten einer Application ändern
 
Zitat:

Zitat von Dragon27
Ich würde aber gerne alle Labels Programmweit umstellen. Geht das?
Bei über 23 Formen wird das unübersichtlich jedes einzeln aufzurufen.

Tja, Du wirst nicht drumrum kommen, diese Funktion für jedes Formular umzusetzen. Mir ist keine Funktion bekannt, wo man als Ergebnis die Namen der kreierten Formulare in z.B. einer StringList zurückbekommt.

Am besten im FormCreate für jedes Formular:
Delphi-Quellcode:
  for I := 0 to ComponentCount-1 do
    if Components(I) is TLabel then
      TLabel(Components(I)).Font.Color := frmMain.myLabelColor; // als Property
edit: Da schon wieder:
Zitat:

Zitat von Florian Bernd
//Edit: :shock: Kein roter Kasten :roll:

Was ist der rote Kasten?

Zacherl 27. Jul 2006 23:21

Re: Alle Komponenten einer Application ändern
 
Oder halt so:
Delphi-Quellcode:
for I := 0 to Application.ComponentCount-1 do
begin
  if Application.Components(I) is TForm then
  begin
    for i2 := 0 to TForm(Application.Components(I)).ComponentCount -1 do
      TLabel(TForm(Application.Components(I)).Components[i2].Font.Color := clRed;
  end;
end;
//Edit: Der "rote Kasten" warnt dich beim Abschicken eines Post, wenn in der Zeit während du geschrieben hast neue Beiträge dazukamen. Dass soll verhindern, dass mehrmals der selbe Vorschlag gepostet wird.

Michael Habbe 27. Jul 2006 23:25

Re: Alle Komponenten einer Application ändern
 
Zitat:

Zitat von Florian Bernd
Oder halt so:
Delphi-Quellcode:
for I := 0 to Application.ComponentCount-1 do
begin
  if Application.Components(I) is TForm then
  begin
    for i2 := 0 to TForm(Application.Components(I)).ComponentCount -1 do
      TLabel(TForm(Application.Components(I)).Components[i2].Font.Color := clRed;
  end;
end;
//Edit: Der "rote Kasten" warnt dich beim Abschicken eines Post, wenn in der Zeit während du geschrieben hast neue Beiträge dazukamen. Dass soll verhindern, dass mehrmals der selbe Vorschlag gepostet wird.

Denn habe ich diesen Kasten aber auch schon gehabt. In den letzen Tagen. :gruebel:

Sicherheitshalber auch noch nach Label schauen:
Delphi-Quellcode:
for I := 0 to Application.ComponentCount-1 do
begin
  if Application.Components(I) is TForm then
  begin
    for i2 := 0 to TForm(Application.Components(I)).ComponentCount -1 do
      if TForm(Application.Components(I)).Components[i2] is TLabel then
        TLabel(TForm(Application.Components(I)).Components[i2].Font.Color := clRed;
  end;
end;

Dragon27 27. Jul 2006 23:25

Re: Alle Komponenten einer Application ändern
 
Hallo,

habe das hier Probiert:

Delphi-Quellcode:

for I := 0 to Application.ComponentCount-1 do
begin
  if Application.Components[i] is TForm then
  begin
    for i2 := 0 to TForm(Application.Components[I]).ComponentCount -1 do
      TLabel(TForm(Application.Components[I]).Components[i2].Font.Color := clRed;
  end;
end;
Aber er zeigt diesen einen Fehler:

Zitat:


[Fehler] LoadFrame.pas(75): E2003 Undefinierter Bezeichner: 'Font'

[edit=SirThornberry]Delphi Tag berichtigt - Mfg, SirThornberry[/edit]

fkerber 27. Jul 2006 23:26

Re: Alle Komponenten einer Application ändern
 
Hi!

Zitat:

Zitat von Michael Habbe

edit: Da schon wieder:
Zitat:

Zitat von Florian Bernd
//Edit: :shock: Kein roter Kasten :roll:

Was ist der rote Kasten?

Ich zitiere mal von hier: http://www.delphipraxis.net/internal...ct.php?t=46416

Zitat:

Schon mal beim Schreiben überholt worden?
Wenn Du einen Beitrag zu einem Thema schreibst, und wer Anders schreibt zwischenzeitlich ebenfalls etwas Neues, so wirst Du vor dem Absenden Deines Beitrages darauf hingewiesen und kannst den neuen Beitrag in Deiner Antwort ggf. berücksichtigen - in manchen Fällen erübrigt sich eine weitere Antwort dann ja auch. Neue und editierte Beiträge werden in der Themenrückschau (unter den Beitragseditor) farblich hervorgehoben.
s. hier: http://www.delphipraxis.net/images/a...ileposting.gif


Ciao, Frederic

Michael Habbe 27. Jul 2006 23:28

Re: Alle Komponenten einer Application ändern
 
Da fehlt eine Klammer zu ")"

Zitat:

Zitat von Dragon27
Delphi-Quellcode:
for I := 0 to Application.ComponentCount-1 do
begin
  if Application.Components[i] is TForm then
  begin
    for i2 := 0 to TForm(Application.Components[I]).ComponentCount -1 do
      TLabel(TForm(Application.Components[I]).Components[i2].Font.Color := clRed;
                                                           ^^ da fehlt die Klammer zu ")"
  end;
end;
Aber er zeigt diesen einen Fehler:
Zitat:

[Fehler] LoadFrame.pas(75): E2003 Undefinierter Bezeichner: 'Font'


Dragon27 27. Jul 2006 23:31

Re: Alle Komponenten einer Application ändern
 
Danke für die Hilfe....

aber bei diesem Code:

Delphi-Quellcode:

for I := 0 to Application.ComponentCount-1 do
begin
  if Application.Components[i] is TForm then
  begin
    for i2 := 0 to TForm(Application.Components[I]).ComponentCount -1 do
      TLabel(TForm(Application.Components[I]).Components[i2]).Font.Color := clRed;
  end;
end;
bekomme ich lauter Zugriffsverletzungen :-(

danke für die Hilfe


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 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