Jak zrobić płynnie przewijający się tekst w Tlabel

mirekpil

Wiem że było, ale proponuję trochę inne rozwiązanie:

autosize label`a należy ustawić na false.

implementation
{$R *.dfm}
var
Tekst1 : String ='Tekst do wyświetlania w labelu przewijany'+
' płynnie bez przerwy i w kółko!!!   ' ;
poz : integer = 0;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  t2 : string ;
begin
  t2:= copy(Tekst1,1,1) ;
  IF poz < label1.Canvas.TextWidth(t2) then
  begin
    label1.Left:= 40 - poz ;
    inc(poz);
  end else begin
    poz := 0;
    label1.Left:=40 ;
    tekst1 := copy(tekst1,2,length(tekst1))+t2 ;
    label1.Caption:= Tekst1 ;
  End;
end;

4 komentarzy

Dryobates napisał nie widzę różnicy
Główną (jeśli nie jedyną) różnicą jest to że u mnie skok jest o jeden piksel (dlatego działa wolniej) , a u ciebie o jeden znak.

dobra prace wrą nad nim... wszystko jest tylko trzeba sterowac z objectinspectora nad timerem w tlabelu................. poprostu timer sie niezatrzymuje

Szczerze mówiąc nie wiem czym w działaniu (nie licząc tego, że mój działa troszkę szybciej) różnią się nasze przykłady...
Ale zawsze co 2 przykłady to nie jeden. Nie ma to jak różnorodność rozwiązań.

hmmm moze komponencik napisac?=]