AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Breitenberechnung Text in Listbox FMX

Ein Thema von matashen · begonnen am 9. Aug 2021 · letzter Beitrag vom 12. Aug 2021
Antwort Antwort
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
454 Beiträge
 
Delphi XE2 Enterprise
 
#1

Breitenberechnung Text in Listbox FMX

  Alt 9. Aug 2021, 08:36
Hallo zusammen,

ich habe in einem Fenster eine Listbox, die Breite des Fensters soll sich je nach Textinhalt der Listbox in der Breite automatisch anpassen, früher hatte ich ein Label mit Zeilenumbrüche und ich hab bei jeder angefügten Information die Breite neu ermittelt und die Breite dann entsprechend geändert. Da inzwischen auch anwählbare Werte angezeigt werden sollen hab ich das Label mit einer Listbox ersetzt nur die Breitenberechnung funktioniert jetzt nicht mehr, ein Teil des Textes ist außerhalb des Sichtbaren Bereichs.
Die Anwendung habe ich mit dem FMX Framework gebaut.

so hats funktioniert
newlength:=Parameterlabel.Canvas.TextWidth(Eigensc haften.Items[i].Caption+Eigenschaften.Items[i].Value);//TLabel

so funktionierts nicht, Breite wird zu kurz berechnet
newlength:=Parameterlist.Canvas.TextWidth(Eigensch aften.Items[i].Caption+Eigenschaften.Items[i].Value);//TListbox

ich komm leider nicht drauf wie ich die Berechnung der Breite mit der Listbox machen soll das mein Text noch komplett sichtbar ist.


Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.840 Beiträge
 
Delphi 7 Professional
 
#2

AW: Breitenberechnung Text in Listbox FMX

  Alt 9. Aug 2021, 15:44
In meinem ollen Delphi 7 mache ich das sinngemäß so:

TLabel auf's Formular. Visible = false, AutoSize = true.
Delphi-Quellcode:
function TForm1.GetNewLength(sCaption : String) : Integer;
begin
  Label1.Caption := sCaption;
  Result := Label1.Width; // gglfs. muss man hier noch was für die Scrollbar ... zurechnen.
end;
...
newlength := GetNewLength(Eigenschaften.Items[i].Caption + Eigenschaften.Items[i].Value);
Oder:
newlength := Label1.Canvas.TextWidth(Eigenschaften.Items[i].Caption+Eigenschaften.Items[i].Value);//TListbox

Nur so als Idee, keine Ahnung ob unter FMX umsetzbar.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.176 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Breitenberechnung Text in Listbox FMX

  Alt 9. Aug 2021, 19:36
Hallo zusammen,

ich habe in einem Fenster eine Listbox, die Breite des Fensters soll sich je nach Textinhalt der Listbox in der Breite automatisch anpassen, früher hatte ich ein Label mit Zeilenumbrüche und ich hab bei jeder angefügten Information die Breite neu ermittelt und die Breite dann entsprechend geändert. Da inzwischen auch anwählbare Werte angezeigt werden sollen hab ich das Label mit einer Listbox ersetzt nur die Breitenberechnung funktioniert jetzt nicht mehr, ein Teil des Textes ist außerhalb des Sichtbaren Bereichs.
Die Anwendung habe ich mit dem FMX Framework gebaut.

so hats funktioniert
newlength:=Parameterlabel.Canvas.TextWidth(Eigensc haften.Items[i].Caption+Eigenschaften.Items[i].Value);//TLabel

so funktionierts nicht, Breite wird zu kurz berechnet
newlength:=Parameterlist.Canvas.TextWidth(Eigensch aften.Items[i].Caption+Eigenschaften.Items[i].Value);//TListbox

ich komm leider nicht drauf wie ich die Berechnung der Breite mit der Listbox machen soll das mein Text noch komplett sichtbar ist.


Gruß Matthias
Verstehe hier nicht, woher ".caption" bzw. .value kommen soll, caption gibt es bei FMX eigentlich nur bei der Form, sonst ist alles ".Text".

Evtl zeigst Du mal ein konkretes Beispiel?
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.208 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Breitenberechnung Text in Listbox FMX

  Alt 12. Aug 2021, 18:38
In FMX gibt es TTextLayout, damit sollte es klappen.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf