1. buttony nie mają canvasa. podobno można jakoś dostać się do canvasa dowolnego obiektu TWinControl ale nie wiem

jak to zrobić ani nie mogę nic znaleźć w google ani na tej stronie
2. próbowałem gdi, np.

procedure TForm1.Button1Click(Sender: TObject);
var
	myDC: HDC;
	i: Integer;
begin
	myDC:= GetDC(Button1.Handle);
	for i:=0 to 10 do SetPixel(myDC, i, i, RGB(255, 0, 0));
	ReleaseDC(Button1.Handle, myDC);
end;

jednak to jest już zupełnie dziwne bo:
a) w delphi 7 działa
b) w delphi 2007 nie działa
c) w delphi 2007 mogę zrobić tak: zapisać projekt i zamknąć go,
usunąć plik Project1.res, otworzyć projekt (res będzie zrekreatowany)
i wtedy już działa.
Tylko że ja ani nie chcę usuwać res'a bo nie wiem co to może zrobić na dużym projekcie ani ta metoda nie działa

podczas obsługi komunikatu OnEnter (tzn działa ale button jest ponownie zamalowany przez jakąś inną procedurę)

  1. Mogę zamienić WindowProc i tam coś namalować ale to nie działa dla BitButtonów :/