![]() |
Lauftext - Label immer auf Mindestgröße
Aktuelles Problem weiter unten^^
Delphi-Quellcode:
Problem ist, dass mir folgendes angezeigt wird:
implementation
var lauftext, buchstabe: string; {$R *.dfm} procedure TForm1.TimerTimer(Sender: TObject); begin buchstabe := copy(lauftext, 1, 1); LLauftext.Caption := lauftext + buchstabe; lauftext := LLauftext.Caption; delete(lauftext, 1, 1); end; procedure TForm1.BStartHierClick(Sender: TObject); begin lauftext := Edit.Text; LLauftext.Caption := lauftext; Timer.Enabled := true; Edit.Visible := false; end; procedure TForm1.BStopHierClick(Sender: TObject); begin Timer.Enabled := false; LLauftext.Caption := ''; Edit.Visible := true; end; Zitat:
|
Re: Lauftext - Ein Buchstabe zuviel
Du aktualisierst erst das Label und dann löschst du den ersten Buchstaben.
|
Re: Lauftext - Ein Buchstabe zuviel
Delphi-Quellcode:
buchstabe := copy(lauftext, 1, 1);
lauftext := LLauftext.Caption + buchstabe; delete(lauftext, 1, 1); LLauftext.Caption := lauftext; |
Re: Lauftext - Ein Buchstabe zuviel
Ich hab's jetzt so
Delphi-Quellcode:
Scheint auch zu funktionieren, allerdings gibt's da noch ein anderes Problem.
procedure TForm1.TimerTimer(Sender: TObject);
begin buchstabe := copy(lauftext, 1, 1); delete(lauftext, 1, 1); LLauftext.Caption := lauftext + buchstabe; lauftext := LLauftext.Caption; end; Wie kann ich einstellen, dass das Label halt komplett von links nach rechts geht und sich nicht auf die Mindestgröße einstellt? |
Re: Lauftext - Ein Buchstabe zuviel
AutoSize auf false.
|
Re: Lauftext - Ein Buchstabe zuviel
Zitat:
|
Re: Lauftext - Label immer auf Mindestgröße
Hm, ich komm auf keine Lösung. Jemand ne Idee?
|
Re: Lauftext - Label immer auf Mindestgröße
Delphi-Quellcode:
Ungetestet!
var
text: string; begin text := label1.text+label1.caption[1]; delete(text,1,1); label1.caption := text; end; €dit: Wie gesagt, ungetestet ;) Hab die unnötige Variable rausgeschmissen und Caption/Text geändert. |
Re: Lauftext - Label immer auf Mindestgröße
Zitat:
Aber das Problem ist ja schon gelöst, mir geht's jetzt nur um das label, bzw, dass der Lauftext durch das ganze Label laufen soll. Das Label ist nämlich nachdem ich starte immer nur so breit, wie Buchstaben vorhanden sind. |
Re: Lauftext - Label immer auf Mindestgröße
Eigentlich sollte sich die Breite bei deaktiviertem AutoSize nicht mehr ändern. Aber du könntest das label ja manuell auf die Breite des Parents setzen
|
Re: Lauftext - Label immer auf Mindestgröße
Ich glaube, ich hab das Problem.
Ich versuche es mal z uveranschaulichen.
Code:
Any ideas?
So verhält es sich grade:
| Test | | estT | | stTe | | tTes | [...] So ist es aber erwünscht: | Test | | Test | | Test | [...] | Test | |Test | |est T| |st Te| |t Tes| | Test| [...] |
Re: Lauftext - Label immer auf Mindestgröße
Einfach Anfangstrimn um Leerzeichen erweitern.
|
Re: Lauftext - Label immer auf Mindestgröße
Zitat:
Delphi-Quellcode:
Klappt...naja, nicht ganz xD Aus "Test" wird "estT" und dann funktioniert es erst...Ich steh echt aufn Schlauch
buchstabe := copy(lauftext, 1, 1);
delete(lauftext, 1, 1); LLauftext.Caption := ' ' + lauftext + buchstabe; lauftext := LLauftext.Caption; |
Re: Lauftext - Label immer auf Mindestgröße
Nein am Anfang also aus 'Test' 'Test ' machen
|
Re: Lauftext - Label immer auf Mindestgröße
Wie mach ich das denn, dass das nur beim ersten String gemacht wird, und dann nicht mehr?
|
Re: Lauftext - Label immer auf Mindestgröße
Delphi-Quellcode:
procedure TForm1.BStartHierClick(Sender: TObject);
begin lauftext := Edit.Text+' '; |
Re: Lauftext - Label immer auf Mindestgröße
Passiert leider nicht viel, jetzt ist da zwar ein Leerzeichen drin, aber trotzden immer noch das gleiche Problem ->
Delphi-Quellcode:
| Test | | est T | | st Te | | t Tes | | Test | [...] |
Re: Lauftext - Label immer auf Mindestgröße
Du musst statt des einen Leerzeichens den String auf die maximale Länge mit Leerzeichen auffüllen
|
Re: Lauftext - Label immer auf Mindestgröße
Jetzt ausprobieren wäre sicher eine unschöne Lösung. Kann man das nicht eleganter machen als jetzt auszuprobieren, wie viele Leerzeichen reinpassen? Was passiert dann, wenn ich statt "Test" eienn langen Satz drin stehen habe?
|
Re: Lauftext - Label immer auf Mindestgröße
Einfach Leerstring maximaler Länge anfügen und dann auf maximale Länge kürzen.
|
Re: Lauftext - Label immer auf Mindestgröße
Hab jetzt
Delphi-Quellcode:
stehen. Allerdings sieht das irgendwie...unschön aus. Gibt es da ne bessere Möglichkeit oder ist das die, die du meintest?
lauftext := Edit.Text + ' ';
Danke auf jeden Fall, ich fange langsam an, endlich ein wenig zu begreifen :) |
Re: Lauftext - Label immer auf Mindestgröße
So hatte ich gemeint und dann auf maximal Länge kürzen
z.B. Max Länge 10:
Delphi-Quellcode:
->
s := 'Hallo'+' ';
setLength( s, 10);
Code:
s = 'Hallo '
|
Re: Lauftext - Label immer auf Mindestgröße
Delphi-Quellcode:
Klappt super, danke!
lauftext := Edit.Text + ' ';
setLength(lauftext, 70); Ist es noch möglich zu programmieren, dass man ins Edit-Feld nichts mehr eingeben kann, wenn man die maximale Länge erreicht hat? |
Re: Lauftext - Label immer auf Mindestgröße
Length(Edit1.Text) bei der Eingabe prüfen
|
Re: Lauftext - Label immer auf Mindestgröße
Hm. hab grad nen ganz anderes Problem. Wenn ich Enter drück, wird keine neue Zeile gemacht, stattdessen lande ich einfach eine Zeile tiefer...was ist nu los?
|
Re: Lauftext - Label immer auf Mindestgröße
Schon erledigt :)
Danke für eure Hilfe! Der Thread kann geschlossen werden |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz