artykuły

Jak animować tekst z cieniem na formie ?

10:13
śro, 3 styczeń 2007
Cała procedura jest poniżej. Tworzona jest Bitmapa na której rysowane są dwa teksty: jeden w kolorze szarym i jeden w kolorze czerwonym. Oba teksty przesunięte są od siebie o jeden piksel co sprawia wrażenie cienia. Oba teksty (szary - cień i czerwony - tekst mają tło ustawione jako przezroczyste [bsClear]). Tekst przesuwa się w lewo i jest trzykrotnie wyświetlany w jednym cyklu. procedure TFrAbout.animuj(tekst: string); var Bitmapa: TBitmap; x,x2,y : integer; txtmod : string; begin AnimujRun := True; Bitmapa := TBitmap.Create; Bitmapa.Canvas.Font.Size := 14; Bitmapa.Canvas.Font.Name := 'Courier New'; txtmod := tekst + ' ' + tekst + ' ' + tekst; Bitmapa.Width := Bitmapa.Canvas.TextWidth(txtmod)+2; Bitmapa.Height := Bitmapa.Canvas.TextHeight(txtmod); Bitmapa.Canvas.FillRect(Rect(0,0,Bitmapa.Canvas.TextWidth(txtmod)+2,Bitmapa.Canvas.TextHeight(txtmod))); Bitmapa.Canvas.Brush.Color := clRed; x := Image1.Width; y := 0; Repeat Application.ProcessMessages; Sleep(10); Bitmapa.Canvas.Brush.Style := bsClear; Bitmapa.Canvas.Font.Color := clRed; Bitmapa.Canvas.TextOut(1,1,txtmod); Bitmapa.Canvas.Brush.Style := bsClear; Bitmapa.Canvas.Font.Color := clGray; Bitmapa.Canvas.TextOut(0,0,txtmod); Image1.Canvas.Draw(x,y,Bitmapa); Dec(x); until (x = -3*Image1.Canvas.TextWidth(txtmod)) or (MainForm.Done); Bitmapa.Free; AnimujRun := False; end; Póki co brak pytań w FAQ.

Skomentuj

Aby zamieścić komentarz, proszę włączyć JavaScript - niestety roboty spamujące dają mi niezmiernie popalić.






Komentarze czytelników

    Nie ma jeszcze żadnych komentarzy.
    Dexter