Zmiana koloru czcionki

0

Witam Wszystkich .

Mam na formie kilkanaście labeli , ComboBoxów , GroupBoxów i CheckBoxów . Pytanie moje jest takie : jak najprościej zmienić kolor czcionki we wszystkich komponentach na raz ?

Z góry dziękuję za podpowiedź .

0

Ustawić wszystkim ParentFont:=True (ustawienie domyślne) i zmienić Font.Color parenta (w tym przyp. formy).

0

Albo edytować moduł z tymi komponentami i ustawić wartość domyślną na pożądany kolor.

0

Chodziło mi o zmianę koloru w czasie działania aplikacji ( wybrany przez użytkownika) , ParentFont niestety odpada , bo rozmiar czcionki jest różny dla różnych komponentów .

0

Najprościej bez rozróżniania typu to można zrobić tak:

var
  I : integer;
  Lab : TLabel;
begin
  for I := 0 to Self.ComponentCount - 1 do
  begin
    Lab := TLabel(Self.Components[I]);
    Lab.Color := clRed;
  end;
end;

Rzutujesz tutaj na TLabel, ale czytając bodajże pewne artykuły w google po polsku na temat dynamicznego tworzenia komponentów, można wyczytać, że rzutując na TLabel jeśli wskażemy TButton to również zmienimy jego własnośc jeżeli mają wspólnego przodka. Opisano to choćby pod koniec w tym artykule na: http://pl.wikibooks.org/wiki/Delphi/Dynamiczne_tworzenie_komponentów

0

Pytający wedle mnie sformułował pytanie tak, że chce zmienić wszystkie kontrolki należące do formatki różnego typu, to pokazałem jak to zrobić. Self jest po to żeby pokazać że dotyczy to obiektu w którym zastosowano kod, więc jest to najbardziej potrzebne według mnie. A nie wiem co Ty tam wymyślasz z rzutowaniem Sendera, ja wyczytałem w helpie Dephi, że własnośc Color pochodzi niby od TControl, ale nie znalazłem wspólnego typu klasy rodzica, dla którego zawsze istnieje własnośc TColor, a więc zrobiłem to przykładowo przez rzutowanie na TLabel, który takową własność na pewno posiada. Jak ktoś zna inny sposób to może napisać.

0

Dzięki olesio .
Takie rozwiązanie znacząco uprości sprawę , bo obecnie procedura zmiany koloru ma tyle linii ile komponentów na formie razy dwa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1