AGB  ·  Datenschutz  ·  Impressum  







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

FMX Komponente für lange Texte?

Ein Thema von softtouch · begonnen am 26. Sep 2022 · letzter Beitrag vom 28. Sep 2022
Antwort Antwort
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
235 Beiträge
 
Delphi 12 Athens
 
#1

FMX Komponente für lange Texte?

  Alt 26. Sep 2022, 19:06
Ich habe ein Array mit strings (ca. 1000). Jeder dieser strings kann fast beliebig lang sein.
Nun muss ich diese strings darstellen, zeilenweise, mit der Möglichkeit, horizontal und vertikal zu scrollen.
Da gäbe es ja die listbox, wo auch multiselect geht (brauche ich unbedingt), aber diese zeigt zwar die horizontale scrollbar an, scrollt aber nicht.
Ich nehme an,ich muss irgendwie die Breite der items einstellen, aber woher weiss ich wie breit das item sein soll?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#2

AW: FMX Komponente für lange Texte?

  Alt 26. Sep 2022, 19:13
Eine ListView und in die das Item(s) eine horizontale ScrollBox mit rein? (falls das geht das neue VCL-Ding kann nur GraphicControls, aber ich glaub FMX konnte alles)



Aber vielleicht auch in der Liste nichts oder nur eine Kurzvorschau anzeigen
und ein Memo für die aktuelle Selektion danaben/drunter. oder ein Popup mit dem Memo beim Drauftippen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Sep 2022 um 19:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
235 Beiträge
 
Delphi 12 Athens
 
#3

AW: FMX Komponente für lange Texte?

  Alt 26. Sep 2022, 19:20
Anbei ein einfaches Beispiel. Jede Zeite besteht aus einem ca. 2000 Zeichen langen Text. Die VScrollbar arbeitet normal, aber die HScrollbar macht nichts, alle items haben nur die Breite der clients. Wie kann ich horizontal scrollen um den Rest der Zeilen zu sehen?
Miniaturansicht angehängter Grafiken
form2_2022-09-26_19-17-53.png  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#4

AW: FMX Komponente für lange Texte?

  Alt 26. Sep 2022, 22:21
Überlegen, warum nutzlos so viel angezeigt werden soll und die Anzeige auf das Wichtige reduzieren?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
701 Beiträge
 
Delphi 12 Athens
 
#5

AW: FMX Komponente für lange Texte?

  Alt 27. Sep 2022, 12:47
Ich habe ein Array mit strings (ca. 1000). Jeder dieser strings kann fast beliebig lang sein.
Nun muss ich diese strings darstellen, zeilenweise, mit der Möglichkeit, horizontal und vertikal zu scrollen.
Da gäbe es ja die listbox, wo auch multiselect geht (brauche ich unbedingt), aber diese zeigt zwar die horizontale scrollbar an, scrollt aber nicht.
Ich nehme an,ich muss irgendwie die Breite der items einstellen, aber woher weiss ich wie breit das item sein soll?
Schon mal versucht, die ItemWidth-Eigenschaft auf einen hohen Wert zu setzen? FMX.Graphics.TCanvas hat Methoden um die Dimensionen eines Strings zu ermitteln.
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von softtouch
softtouch

Registriert seit: 13. Feb 2015
Ort: Kerpen
235 Beiträge
 
Delphi 12 Athens
 
#6

AW: FMX Komponente für lange Texte?

  Alt 27. Sep 2022, 12:49
Ich habe ein Array mit strings (ca. 1000). Jeder dieser strings kann fast beliebig lang sein.
Nun muss ich diese strings darstellen, zeilenweise, mit der Möglichkeit, horizontal und vertikal zu scrollen.
Da gäbe es ja die listbox, wo auch multiselect geht (brauche ich unbedingt), aber diese zeigt zwar die horizontale scrollbar an, scrollt aber nicht.
Ich nehme an,ich muss irgendwie die Breite der items einstellen, aber woher weiss ich wie breit das item sein soll?
Schon mal versucht, die ItemWidth-Eigenschaft auf einen hohen Wert zu setzen? FMX.Graphics.TCanvas hat Methoden um die Dimensionen eines Strings zu ermitteln.
Ja, habe ich gerade gemacht. Ich berechne die Pixel des längsten strings und setze dann itemwidth auf diesen Wert. Nur die vertikale Scrollbar muss ich noch irgendwie reinrechnen, finde aber nicht heraus wie man die Breite dieser unter FMNX ermittelt.
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
485 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: FMX Komponente für lange Texte?

  Alt 28. Sep 2022, 14:52
Ich berechne die Pixel des längsten strings und setze dann itemwidth auf diesen Wert.
Das funktioniert aber nur bei Monospace-Schriftarten. Bei anderen sind die Buchstaben ja unterschiedlich lang, was bedeuten wüde, dass mmmm mehr Pixel benötigt als lllll, obwohl der String kürzer ist. So einfach kann man sich das leider meistens nicht machen.

Nur die vertikale Scrollbar muss ich noch irgendwie reinrechnen, finde aber nicht heraus wie man die Breite dieser unter FMNX ermittelt.
Die ist ein normales FMX-Control. Kannst du dir über die GetStyleObject-Funktion oder als Child-Control holen.
Dennis
  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 05:13 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