Rysowanie po TImage - problem z tlem

0

Czesc! Dlaczego jak narysuje po pustym komponencie TImage jakąś kreskę za pomocą Canvas.LineTo(x,y), to robi się biale tlo. Nie chce tego! Chce zeby bylo przezroczyscie tak jak na samym poczatku...
Pliis! Potrzebuje waszej pomocy...

0

Nie wiem, czy to coś pomoże, ale spróbuj najpierw dać Canvas.Brush.Style:=bsClear;

0

TImage nie służy raczej do rysowania. Początkowo jest przeźroczysty, bo nie jest do niego przypisana ani bitmapa, ani ikona ani metafile.

Gdy narysujesz coś na jego powierzchni, TImage traktuje obrazek jako bitmapę (a bitmapa nie obsługuje przeźroczystości - chyba, że w TImage ustawisz pole Transparent, to kolor tła będzie kolorem przeźroczystym).

Jak chcesz rysować po powierzchni polecam TPaintBox.

0
Szczawik napisał(a)

(a bitmapa nie obsługuje przeźroczystości

var bmp: TBitmap;
begin
  bmp:=TBitmap.Create;
  bmp.LoadFormFile('plik');
  bmp.TransparentColor:=clFuchsia;
  bmp.Transparent:=True;

http://community.borland.com/article/0,1410,16794,00.html

0

To moze z innej beczki. Imaga uzywam po to, bo wtedy moge manipulowac jakos canvasem. Np. Przenosic go. i wtedy daje Image1.top:= image1.top+10;
To byl przyklad. Czaicie? :P

0
Piniol napisał(a)
Szczawik napisał(a)

(a bitmapa nie obsługuje przeźroczystości
(..)

Nie no.. Nie wyrywaj z kontekstu. To cios poniżej pasa.

Format bitmapy nie obsługuje przeźroczystości - to jest fakt; a że istnieje sposób, aby ustalić, który kolor jest traktowany jako przeźroczysty, to napisałem przecież - TImage wykorzystuje właśnie taką metodę.

A co do tematu: polecam rysować po jakiejś bitmapie (TBitmap) trzymanej w pamięci a podczas odświeżania okna przeklejać obszar na TPaintBox, albo przypisywać bitmapie TImage.

0

Jeśli juz przeklejać, to po co ten PaintBox? Wystarczy w OnPaint przerysowywać na Canvasa formy.

0

I znow odchodzimy od tematu...
[???]

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