AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

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
471 Beiträge
 
Delphi 10.2 Tokyo 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
2.490 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.533 Beiträge
 
Delphi 11 Alexandria
 
#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
4.093 Beiträge
 
Delphi 12 Athens
 
#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
Antwort Antwort


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 +1. Es ist jetzt 11:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz