Thema: Delphi Richtige Laufschrift

Einzelnen Beitrag anzeigen

Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#4
  Alt 25. Jul 2002, 19:01

ich gehe mal davon aus, dass sich die Länge des Strings nicht ändert, sonst ist es kaum möglich, ein brauchbares optisches Bild zu erreichen.
Die übliche Art, eine Laufschrift zu erzeugen, besteht darin, vom String das vordere Zeichen zwischenzuspeichern, abzuschneiden und hinten wieder anzufügen.
Code:
strMeinText := 'Meine schöne lange Laufschrift ...';
...
// In Timer-Ereignis
...
strBuffer := Copy (strMeinText, 1,1);
strMeinText := Copy(strMeinText,2,Length(strMeinText) ) + strBuffer;
LaufLabel.Caption := strMeinText;
Hierbei wird natürlich, wenn Du den String ersetzt, dieser von Anfang an gezeigt.

Für Deine gewünschte Fumktion musst Du zusätzlich eine Integer-Variable mitführen, welche sich die aktuelle Anfangsposition merkt. Also:
Code:
strBuffer := Copy (strMeinText, 1,1);
Inc(intPosition);
if intPosition > Length(strMeinText) then
  intPosition := 1;
strMeinText := Copy(strMeinText,2,Length(strMeinText) ) + strBuffer;
LaufLabel.Caption := strMeinText;
Sobald Du Deinen String änderst, ruftst Du eine Funktion auf, die Dir Deinen neuen String so zurechtbastelt, wie wenn er schon in der Laufschrift gestanden wäre:
Code:
strMeinText := AktuellerText(strMeinText, intPosition);
...
function AktuellerText (Text: string; Position: integer): string;
var
  Buffer: string;
begin
  Buffer := Copy(Text, 1, Position);
  Text := Copy(Text, Position + 1, Length(Text));
  Result := Text + Buffer;
end;
Ich hab' es jetzt allerdings nicht getestet, sondern direkt im Browser getippt

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat