2013-07-30 10 views
6

Projem için basit bir resim editörü yazıyorum. OradaBoyalı metin altında beyaz arka plan olmadan TCanvas üzerinde metin çizmek nasıl?

Eğer düzenleyici görüntü görebilirsiniz: TImage Üstü

enter image description here

, ben birkaç TLabel yerleştirilir. önizlemede

Eğer görüntü üzerinde TLabels çizim sonucu görebilirsiniz: Bu kodu yazdım TLabels çizim için

enter image description here

: Ben görüntü var

procedure TPrintForm.BuildPreview(aSsignTo: TImage); 
    var 
     Img: TBitmap; 
     i: Integer; 
    begin 
     Img := TBitmap.Create; 
     try 
     Img.Assign(fSrcBitmap); 
     for i := 0 to Count - 1 do 
     begin 
      Img.Canvas.Font := Items[i].Text.Font; 
      Img.Canvas.TextOut(Items[i].Text.BoundsRect.TopLeft.X - Items[i].Text.Font.Size, 
      Items[i].Text.BoundsRect.TopLeft.Y - Items[i].Text.Height - 
      Items[i].Text.Font.Size, Items[i].Text.Caption); 
     end; 
     aSsignTo.Picture.Assign(Img); 
     finally 
     FreeAndNil(Img); 
     end; 
    end; 

sonucunda, nerede TLabel drawed Metin altında beyaz arka plan var. TLabel nasıl çizilir?

cevap

4

Tüm cevaplar için teşekkürler. çözümlenmiş

SetBkMode(Img.Picture.Bitmap.Canvas.Handle,TRANSPARENT); 

Sorun: burada çözüm bulundu.

15
Img.Canvas.Brush.Style := bsClear; 
İlgili konular