Hallo!
Ich habe da mal eine Anfängerfrage, auf die ich keine Lösung gefunden habe...
Ich möchte z.B. eine Progressbar mit folgender Information "beschriften":
"Bearbeite Element" [TLabel1] " von " [TLabelMax]
Gehen wir mal davon aus, dass die Elemente ziemich zahlreich werden können.
Macht man TLabel1 in der Breite zu klein, wird die Zahl (z.B. dreistellig)
"abgeschnitten". Macht man es zu gross, ist der Abstand zu TLabelMax zu gross.
Sprich: Es könnte zu folgenden Anzeigefehlern kommen:
* Bearbeite Element 1 von 123456 (erwünscht)
* Bearbeite Element 1 von 1234 (nicht erwünscht, da TLabelMax abgeschnitten)
Somit will ich den Fall
"Bearbeite Element 1 (hier kommen u.U. viele Leerzeichen) von 1234"
verhindern, so dass es immer korrekt dargestellt wird und lesbar ist.
Ich hoffe, das war nicht zu blöd erzählt...
Danke und Grüsse!
Breite von TLabels o.ä. "passend" machen
-
- Beiträge: 607
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: Breite von TLabels o.ä. "passend" machen
Hi dummy,
hast du im Objektinspektor schon mal autosize auf true gestellt? Wäre das erste was ich probieren würde.
Gruß
Bernd
hast du im Objektinspektor schon mal autosize auf true gestellt? Wäre das erste was ich probieren würde.
Gruß
Bernd
Re: Breite von TLabels o.ä. "passend" machen
Eine Progressbar beschriften? Soviel ich weiß, hat die gar kein Text-Feld dafür. Du musst dir ein Textfeld (TLabel oder TStaticText) über oder unter die Progressbar klicken und dann in dem Code, in dem die Progressbar hochgezählt wird, dessen Caption aktualisieren. Am einfachsten baust du dir den Text mit Hilfe der Format-Anweisung zusammen:
Du kannst natürlich auch 4 Labels für "Bearbeiten Element", den aktuellen Wert, "von" und den Maximalwert nebeneinander anordnen (wäre mir aber viel zu aufwendig...). Aktiviere AutoSize=true für jedes Label und verwende den Anker-Editor, um die Labels direkt aneinanderzugehängen. Wie das geht, kannst du z.B. diesem Video entnehmen: https://www.youtube.com/watch?v=neigk9Pt21o
Code: Alles auswählen
procedure TForm1.UpdateProgessbar(NeuerWert: Integer);
begin
Progressbar1.Position := NeuerWert;
Label1.Caption := Format('Bearbeite Element %d von %d', [NeuerWert, Progressbar1.Max]);
end;
Re: Breite von TLabels o.ä. "passend" machen
Danke für die Tipps!
VG,
Dummy
VG,
Dummy