Thema: Delphi Laufschrift mit Label

Einzelnen Beitrag anzeigen

hathor
(Gast)

n/a Beiträge
 
#1

Laufschrift mit Label

  Alt 14. Sep 2014, 22:10
Normalerweise schiebt man Buchstabe für Buchstabe in die gewünschte Richtung.
Zwangsweise kommt es dann zum Ruckeln, weil die kleinste Bewegung eine Buchstabenbreite ist.

Besser ist es, man bewegt das Element, das die Grafik enthält.
Dann ist die kleinstmögliche Bewegung eine Pixelbreite.

Delphi-Quellcode:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.ComCtrls;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Timer1: TTimer;
    Label2: TLabel;
    Speed1: TTrackBar;
    Edit1: TEdit;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure NeuBerechnen(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;
  lw, n : INTEGER;
  mytext : String;

implementation

{$R *.dfm}

procedure TForm2.NeuBerechnen(Sender: TObject);
begin
myText:= Edit1.Text;
Timer1.Interval:= 110- Speed1.Position;
Label2.Caption:= 'Timer1.Interval: '+ INTTOSTR(Timer1.Interval);
Label1.Caption:= myText + ' '+ Label2.Caption;
lw:= Form2.Width + Label1.Width;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
n:=0;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
NeuBerechnen(Self);
inc(n);
Label1.Left:= Form2.Width-n;
if n> lw then begin n:=0; Label1.Left:= Form2.Width-20; end;
end;

end.
Miniaturansicht angehängter Grafiken
laufschrift-1.jpg  
Angehängte Dateien
Dateityp: zip LAUFSCHRIFT-1.zip (699,5 KB, 43x aufgerufen)

Geändert von hathor (15. Sep 2014 um 15:07 Uhr)
  Mit Zitat antworten Zitat