![]() |
Komponenten in allen Forms ändern
Hallo Zusammen!
Nachdem der Anwender Farbeinstellungen im Konfigurations-Fenser meiner Anwendung verändert hat, sollen ausgewählte Komponenten in allen Forms der Anwendung sofort angepasst werden. Mit folgendem (beispielhaften) Code kann ich das innerhalb eines Fensters erledigen...
Delphi-Quellcode:
Nun sollen aber ALLE Listboxen in ALLEN Forms der Anwendung auf diese bequeme Weise farblich angepasst werden. Versuche, dies mit folgendem Code zu erledigen, hatten keinen Erfolg...
procedure TfoMain.SetAllColors;
var i : Integer; begin for i:=0 to ComponentCount-1 do if Components[i] is TListbox then (Components[i] as TListBox).Color:=NewColor; end;
Delphi-Quellcode:
Gibt es da eine Lösung?
procedure TfoMain.SetAllColors;
var i : Integer; begin with Application do // << ZUSÄTZLICH for i:=0 to ComponentCount-1 do if Components[i] is TListbox then (Components[i] as TListBox).Color:=NewColor; end; |
Re: Komponenten in allen Forms ändern
Hi,
so ganz grob durch die Forms der Application iterieren:
Delphi-Quellcode:
Cu, Frank
procedure TForm27.FormCreate(Sender: TObject);
Var fi: Integer; ci: Integer; begin for fi := 0 to screen.FormCount - 1 do for ci := 0 to Screen.Forms[fi].ComponentCount - 1 do ... end; |
Re: Komponenten in allen Forms ändern
Ja die gibt es, sie ist sogar recht einfach:
Delphi-Quellcode:
Wenn du glück hast klappt das, habe ich jetzt nicht getestet, kann sein das er ein paar Fehler enhält...
procedure TfoMain.SetAllColors;
var i,f : Integer; begin for f:=0 to Screen.FormCount-1 do begin for i:=0 to Screen.Forms[f].ComponentCount-1 do if Screen.Forms[f].Components[i] is TListbox then ( Screen.Forms[f].Components[i] as TListBox).Color:=NewColor; end; end; ab |
Re: Komponenten in allen Forms ändern
Joooo, genau so hatte ich es mir vorgestellt - nur an "Screen" habe ich dabei gar nicht gedacht und bei "Application" natürlich nix gefunden. Von der Wortung fände ich es dort logischer "aufgehoben". Aber, anyway, muss man sich halt merken! Vielen Dank für die schnellen Antworten!
Gruß aus Hamburg |
Re: Komponenten in allen Forms ändern
Zur Vollständigkeit noch 'ne kurze Rückmeldung:
Delphi-Quellcode:
Funktioniert tadellos!
procedure TfoMain.SetAllColors;
var i,j : Integer; begin with Screen do for i:=0 to FormCount-1 do for j:=0 to Forms[i].ComponentCount-1 do with Forms[i] do begin if Components[j] is TEdit then (Components[j] as TEdit).Color:=ReadModeColor; // ... // .. end; end; Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 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