

Delphi - zmena pozadia tlačítka
Ako zmením pozadie na TButton/TBitBtn? Akosi sa k tomu neviem dopátrať. Vlastnosť Brush je len na čítanie a preto mi to nefungovalo. Ako zisťujem, tak ani vlastnosti Canvas sa nedopátram.
Vo WinAPI sa to robi tusim callback funkciou - notification message WM_CTLCOLORBTN, http://msdn.microsoft.com/en-us/library/bb761849(VS .85).aspx
Pre Delphi a TButton si skus pozriet tu ucvcl.htm zdrojaky TColorButton (nerobim s delphi, len som to nasiel googlom), predpokladam ale ze tam bude dorobene spracovanie toho notification message WM_CTLCOLORBTN.
Vytvorit si potomka a obslouzit vykreslovani tlacitka
To by bolo IMHO zbytocne vela roboty, Win to predsa vykresluje sam
Po ICQ som sa rozprával s JaFi a došiel som k záveru, že najlepšie bude asi použiť TPanel. Ide mi o nastavenie tlačítka, že je stlačené stále, niečo ako náhrada za malé uško pri TPageControl.
Na to je u Common Controls buttonu (t.j. u klasickeho buttonu aky vo Win existuje) flag "BS_PUSHLIKE" (http://msdn.microsoft.com/en-us/library/bb775951(VS .85).aspx). Nema Ten TButton nahodou takyto flag? Ukazka ako to funguje:
http://blogs.msdn.com/oldnewthing/archive/2007/09/2 1/5021765.aspx
... t.j. pouzijes nejaky checkbox (TCheckbox?) a nastavis mu BS_PUSHLIKE. Ak to teda v Delphi ide. Ak nie tak zahod delphi
Sice je to vyresen, nicmene ja vzdycky pouzival http://sodev.webzdarma.cz/show.php?page=Button&la=& kateg=Buttons - GradButn 1.4. Nevim jak je to s nynějí podporou ale v D6 ještě fungovala a je fakt sexy.