Rysowanie po przezroczystym Canvase

0

Mam na formie komponent TImage i i "na nim" tworze obiekt TCanvas:

  tlo2 := TCanvas.Create;
  tlo2.Handle := GetDC(tlo.Parent.Handle);
  tlo2.Rectangle(0,0,Panel1.Width,Panel1.Height);
  tlo2.Brush.Style := bsSolid;
  tlo2.Pen.Width := 2;
  tlo2.Pen.Color := clRed;

dzie tlo jet typu TImage, a tlo2 typu TCanvas. Teraz chce na nim rysować prostokąty (takie niby zaznaczenie przy przesuwaniu obiektu wywołuje najpierw FillRect, a potem Rectangle dla tlo2). Problem w tym ze wywołanie

  tlo2.FillRect(Rect(l_border, t_border, r_border, b_border));

nie czyści obiektu TCanvas przezroczystym kolorem. Jak z takim czymś sobie poradzić ??

0

Kolor wypełnienia określasz poleceniem:
tlo2.Brush.Color := clwhite; // w tym przypadku biały, ale podajesz kolor jaki masz ustawiony za przezroczysty

0

zrobilem tak jak mowiles czyli:

  tlo2.Brush.Color := White;

i Transparent formy na true i kolor przezroczysty na clWhite ale ...
Nie bardzo o to chodziło:

  • prześwitywanie formy w miejscu rysowania zaznaczenia.
  • straszne migotanie (doublebuffered dla formy włączony)

A wiec taka realizacja tego odpada.

0

^UP

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