Pytanie bez odpowiedzi ? - kolor systemowy

0

Cześć

Od dawna poszukuje rozwiązania mojego problemu i bardzo liczę na Waszą pomoc.
Chciałbym zmienić kolor systemowy - ale tylko ograniczając tą zmiane do mojego programu.
Przykład i zarazem problem :

procedure TForm1.Button1Click(Sender: TObject);
var
 nowyKolor,sysKolor :DWORD;
begin
 sysKolor:= COLOR_BTNFACE;  //pobranie wartości koloru systemowego (w delphi clBtnFace)
 nowyKolor:= clred;         //wartość nowego koloru
 {ustawia nowy kolor w systemie i w delphi dla clBtnFace
  - a chciałbym ograniczyć sie do samego Delphi}
 SetSysColors(sysKolor,sysKolor,nowyKolor);
end;
0

Wg mnie aby to zrobic to musisz sobie odpuścić prockę SetSysColors, bo jak sama nazwa wzkazuje zmienia ona kolory systemowe a Tobie nie na tym zależy...., więc kombinowałbym coś w stylu:

if Form1.Color=clBtnFace then Form1.Color:=clRed;

I chyba nie ma innego wyjścia... no ale może się myle, a moze w ogóle zle cie zrozumiałem ?? ;P

0

Procka "SetSysColors" to jest tylko przykład - właśnie chciałbym to czymś zastąpić co umożliwi mi zmiane koloru systemowego, ale tylko w obrębie mojej aplikacji.

Chodzi mi o to że dla wielu komponentów nie można ustalić koloru , przykładem tego jest najzwyklejszy TButton.
Nie posiada on właściwości "Color" gdzie możnamy ustawić Color:= jakisTamkolor;
Musiałbym rysować po canvasie itd. Takich komponentów jest sporo w Delphi.
Domyślnie w swych kodach czerpią kolor z systemu ( COLOR_BTNFACE )
Więc za jednym zamachem chciałbym zmienić kolor dla tych komponentów.
Przykładowo button wyświetlany pod XP ma kolor systemowy żółty - a pierwotnie
pod 98 był siwy i chrzani mi się estetyka programu.
Ktoś podpowie żeby dać manifest XP lub coś w tym stylu. Ale to zmieni mi wygląd buttona - a ja chciałbym zachować wygląd niektórych komponentów taki jaki był pierwotnie pod 98.

0

Nie wydaje mi się żeby była możliwa taka lokalna zmiana kolorów. Przecież Button jest typowym komponentem systemowym i nie ma jak zablokować jego powiązań ze stałymi systemowymi. Więc pozostaje tylko malowanie po canvasie...

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