Canvas - textout transparente

Top  Previous  Next

This is a bit of code that came on a CD-ROM with a "How To Book" I bought.. The file is called "HowUtils.Pas" Fades Text inand or out on a Canvas. 

 

 

--------------------------------------------------------------------------------

 

function TFadeEffect.FadeInText(Target: TCanvas; X, Y: integer; FText: String): TRect;

var

  Pic: TBitmap;

  W, H: integer;

  PicRect, TarRect: TRect;

begin

  Pic := TBitmap.Create;

  Pic.Canvas.Font := Target.Font;

  W := Pic.Canvas.TextWidth(FText);

  H := Pic.Canvas.TextHeight(FText);

  Pic.Width := W;

  Pic.Height := H;

  PicRect := Rect(00, W, H);

  TarRect := Rect(X, Y, X + W, Y + H);

  Pic.Canvas.CopyRect(PicRect, Target, TarRect);

  SetBkMode(Pic.Canvas.Handle, Transparent);

  Pic.Canvas.TextOut(00, FText);

  FadeInto(Target, X, Y, Pic);

  Pic.Free;

  FadeInText := TarRect;

end;

 

procedure TFadeEffect.FadeOutText(Target: TCanvas; TarRect: TRect; Orig: TBitmap);

var

  Pic: TBitmap;

  PicRect: TRect;

begin

  Pic := TBitmap.Create;

  Pic.Width := TarRect.Right - TarRect.Left;

  Pic.Height := TarRect.Bottom - TarRect.Top;

  PicRect := Rect(00, Pic.Width, Pic.Height);

  Pic.Canvas.CopyRect(PicRect, Orig.Canvas, TarRect);

  FadeInto(Target, TarRect.Left, TarRect.Top, Pic);

  Pic.Free;

end;