[ franjo_tahi @ 30.03.2011. 11:40 ] @
Na fromi imam više timage objekata. Na svaki crtam iz program linije.
1. timage je podloga, a ostali su položeni preko njega

Kako napraviti da se podloga vidi kroz slike koje su preko nje?
Ako postavim Image1.Transparent := true tada se ne vide linije koje sam nacrtao
Ako ostavim Transparent := false tada se ne vidi podloga ispod slike koja je preko.
[ savkic @ 30.03.2011. 16:12 ] @
Najjednostavnije je da sliku staviš na posebnu formu kojoj ćeš podesiti AlphaBlendValue.
[ Rapaic Rajko @ 30.03.2011. 19:55 ] @
Zar nema u TImage i property TransparentColor...?

Pozz

Rajko
[ franjo_tahi @ 31.03.2011. 12:08 ] @
Ne, TImage nema TransparentColor...

Ne odgovara mi da postavim sliku koja mora biti transparentna na drugu formu jer takvih slika može biti 50-tak, ovisi o parametrima.

- Podloga je jedna slika, to bi se moglo iscrtati i direktno na formu.
- preko te podloge se postavljaju ostale slike, a može doći i do preklapanja ovih slika.

Slika se ne učitava, samo se crta po Canvas-u. Možda neka druga kontrola? Ne odgovara mi crtanje direktno na formi jer moram svaku sliku za sebe pomicati, ako radim direkt na formi, moram refrešati cijelu formu....

Ideje?
[ ((BugA)) @ 31.03.2011. 16:54 ] @
Mozda TPaintBox? Tu bi trebalo da postignes providnost bez problema, samo ovde sam moras voditi racuna o osvezavanju (refresh) kontrole.
[ Rapaic Rajko @ 31.03.2011. 20:53 ] @
Evo resenja.

1) Rekao si da iskljucivo radis crtanje, koriscenjem Image.Canvas-a. Odlicno, jer to znaci da je Image.Picture.Graphic tipa TBitmap, odnosno, dozvoljeno je prici mu i ovako: Image.Picture.Bitmap. (Da pojasnim: ako je slicajno Picture.Graphic nekog drugog tipa, jer smo recimo ucitali Icon, pozivanje Picture.Bitmap smesta diskarduje postojecu sliku/Graphic, i kreira novi Picture.Graphic tipa TBitmap. U nasem slucaju, ne desava se nista, odnosno ostaje postojeca slika/bitmapa)
2) Sad je lako, TBitmap ima property Transparent, a takodje ima i TransparentColor; to je to.
3) Probao sam, ovo radi ;) .

Pozz

Rajko
[ franjo_tahi @ 01.04.2011. 11:12 ] @
Hvala na pomoći. Sada radi onako kako mi treba.
Malo se trebalo igradi s postavljanjem boja budući da ne učitavam sliku, a sami tImage kreiram u prog.

Image koji mora biti transparenti mora imata FillRect.
Code:

   ...
   i2.Picture.Bitmap.SetSize(100,100);
   i2.Picture.Bitmap.Canvas.Brush.Color := clBtnFace;
   i2.Picture.Bitmap.Canvas.Brush.Style := bsSolid;
   tr.Left := 0;
   tr.Top := 0;
   tr.Bottom := 100;
   tr.Right := 100;
   i2.Picture.Bitmap.Canvas.FillRect(tr);
   i2.Picture.Bitmap.Canvas.Brush.Color := clBlack;
   i2.Picture.Bitmap.Transparent := true;
   i2.Picture.Bitmap.TransparentColor := clBtnFace;
   i2.Picture.Bitmap.Canvas.MoveTo(100,0);
   i2.Picture.Bitmap.Canvas.LineTo(0,100);
   ...


Ovo je samo kod za testiranje (ne odiše ljepotom), sve skupa ide u klasu.