Breite von TLabels o.ä. "passend" machen

Für Fragen von Einsteigern und Programmieranfängern...

Breite von TLabels o.ä. "passend" machen

Beitragvon dummy » 28. Mai 2017, 20:34 Breite von TLabels o.ä. "passend" machen

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!
dummy
 
Beiträge: 8
Registriert: 28. Mär 2015, 02:05

Beitragvon wennerer » 28. Mai 2017, 20:55 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
wennerer
 
Beiträge: 16
Registriert: 19. Mai 2015, 19:05
OS, Lazarus, FPC: Ubuntu 16.04, Lazarus 1.6, FPC 3.0.0 | 
CPU-Target: xxBit
Nach oben

Beitragvon wp_xyz » 28. Mai 2017, 23:44 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:

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;

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
wp_xyz
 
Beiträge: 2569
Registriert: 8. Apr 2011, 08:01

Beitragvon dummy » 4. Jun 2017, 15:38 Re: Breite von TLabels o.ä. "passend" machen

Danke für die Tipps!

VG,
Dummy
dummy
 
Beiträge: 8
Registriert: 28. Mär 2015, 02:05

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried