Entwickler-Ecke
Multimedia / Grafik - Wie bekomme ich den Text in einem Label zum laufen?
chriss1988 - Do 22.09.05 11:48
Titel: Wie bekomme ich den Text in einem Label zum laufen?
kann mir jemand helfen ich möcjte ,das sich mein text in einem label von rechts nach links bewegt :roll:
kann mir da jemand helfen
oder geht das net :?:
Moderiert von
Tino: Größschreibung im Titel aktiviert.
kde2005 - Do 22.09.05 12:15
Hallo!
Es geht.
Du braust einen Timer und ein Label.
Timer Interval auf 60. (Je nach belieben)
hier ist der Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| text:String;
procedure TForm1.FormCreate(Sender: TObject); begin text:='ich kann alles!'; label1.caption:=text; end;
procedure TForm1.Timer1Timer(Sender: TObject); var s:string; begin if length(Label1.Caption)>=60 then begin s:=Copy(label1.Caption,60,1); Label1.Caption:=s +Copy(Label1.Caption,1,59);
end else Label1.Caption:=' ' +Label1.Caption; end; |
Gruß Konstantin
ps: 60 ist die Länge des Textes bzw. sagt aus wie lange der Text im Label laufen soll bevor er wiederhohlt wird. [beim ändern von 60,solltest du 59 durch den 'neuen Wert'-1 ersetzen]
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt
kde2005 - Do 22.09.05 12:42
Ich habe gerade gelesen, dass du willst dass der Text von Rechts nach Links und nicht umgekehrt laufen soll:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| text:String; textlength:integer;
procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin text:='ich kann alles!'; textlength:=length(text); for I := 1 to 60-textlength do begin text:=' ' + text; end; label1.caption:=text; end;
procedure TForm1.Timer1Timer(Sender: TObject); var s:string; begin if Label1.Caption[1] <> ' ' then begin s:=Copy(label1.Caption,1,1); Label1.Caption:=Copy(Label1.Caption,2,59)+s;
end else Label1.Caption:=Copy(Label1.Caption,2,Length(Label1.Caption)-1) +' '; end; |
Natürlich kann man den Code noch kompakter machen. In diesem Fall sollte die Absicht verständlich werden.
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt
chriss1988 - Do 22.09.05 13:02
ok danke und wo muss ich das dan einfügen
oder reinsetzen
kde2005 - Do 22.09.05 13:08
das hier in Variablendeklaration der Unit(Formulars):
Delphi-Quelltext
1: 2:
| text:String; textlength:integer; |
das ist Form.Create Event:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin text:='ich kann alles!'; textlength:=length(text); for I := 1 to 60-textlength do begin text:=' ' + text; end; |
und das ist im Timer.Tick Event
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Timer1Timer(Sender: TObject); var s:string; begin if Label1.Caption[1] <> ' ' then begin s:=Copy(label1.Caption,1,1); Label1.Caption:=Copy(Label1.Caption,2,59)+s;
end else Label1.Caption:=Copy(Label1.Caption,2,Length(Label1.Caption)-1) +' '; end; |
chriss1988 - Do 22.09.05 14:57
das ist Form.Create Event:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.FormCreate(Sender: TObject); var I: Integer; begin text:='ich kann alles!'; textlength:=length(text); for I := 1 to 60-textlength do begin text:=' ' + text; end; |
was bedeutet formCreat ich wollt das in en panel setzten
kde2005 - Do 22.09.05 15:06
Wenn du auf dein Formular einen Doppelklick(bei der Entwicklung) machst, kommst du in den Codeeditor. Dein IDE(Delphi 5,6,7,8,9) erzeugt dir schon eine Procedure(Methode) namens Create. Diese Procedure wird ausgeführt wenn du dein Programm startest und dein Formular erzeugt wird. Natürlich kannst du den Code den ich jetzt in Create Methode reinkopiert habe wo anders erzeugen. Nur muss dieser Code ausgeführt werden bevor dein Timer den anderen Code zum ersten Mal ausführt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!