AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?
Thema durchsuchen
Ansicht
Themen-Optionen

Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?

Ein Thema von sko1 · begonnen am 3. Mär 2017 · letzter Beitrag vom 7. Mär 2017
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?

  Alt 6. Mär 2017, 20:00
Hast Du dafür bitte mal einen Codeschnipsel?
Delphi-Quellcode:
  R := RectF(0,0,Memo.ViewportSize.Width,20000);
  Memo.Canvas.MeasureText(R,Memo.Text,true,[],TTextAlign.Leading,TTextAlign.Leading);

Sowas? R Hat dann die Höhe.
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#12

AW: Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?

  Alt 7. Mär 2017, 06:55
Nein, die Verwendung von MeasureText ist mir klar, funktioniert nur unter Android nicht!

Meine Frage nach dem Codeschnipsel bezog sich auf TTextLayout...

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#13

AW: Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?

  Alt 7. Mär 2017, 08:18
Na, ist eigentlich recht einfach bis auf den ersten Schritt, wo man nämlich das TTextLayout per TTextLayoutManager erzeugt.

Die OH hat dazu sogar ein Beispiel: http://docwiki.embarcadero.com/RADSt...von_FireMonkey
Das TTextLayout kennt auch WordWrap und damit ist alles drin, was Du brauchst. Die Größe des entstandenen Texts kannst schließlich Du über die TextRect Property abfragen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#14

AW: Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?

  Alt 7. Mär 2017, 08:36
Danke, ich habe es gefunden und es funktioniert, nur mit folgender Einschränkung:

Ich zeichne auf ein TImage (besser auf dessen Bitmap), ermittle die Texthöhe, zeichne weiter usw.
Jetzt bin ich aber leider darauf gestoßen, dass bei Firemonkey die Bitmapgröße limitiert ist, so dass ich nach bei ca. 130 Einträgen nicht mehr weiterkomme ("Bitmap zu groß").

Ein Richedit gibt es bei Firemonkey nicht, ich brauche aber gemischt normalen und fetten Text.
Lauter einzelne Labels erzeugen und positionieren widerstebt mir weil das ebenfalls auf dem Handy mehr als zähflüssig wird.

So langsam gehen mir die Ideen aus, wie ich meine Textausgabe realisieren kann!

Hat jemand dazu vielleicht eine Idee?

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#15

AW: Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?

  Alt 7. Mär 2017, 08:37
Diese Bitmap-Limitierung gilt auch für VCL (eventuell mit anderen Dimensionen), und ich werde in bälde auch daran zu knabbern haben. Man behilft sich dann, indem man mehrere Bitmaps aneinander klebt.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
588 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#16

AW: Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?

  Alt 7. Mär 2017, 10:58
Zitat:
Man behilft sich dann, indem man mehrere Bitmaps aneinander klebt.
Das habe ich inzwischen probiert, unter Windows kein Problem, unter Android könnte schon mal der Speicher knapp werden, wird ausserdem extrem langsam.

Meine Lösung, die ich jetzt umgesetzt habe:
Im OnPaint der Komponente male ich jetzt meine Texte auf den Canvas, dafür braucht man keine Bitmap erzeugen und es gibt (bis jetzt jedenfalls) keine "Mengenbeschränkung", so dass ich auch 800 Texte zeichnen kann, das Scrolling wird dann etwas träger aber bei normaler Verwendung absolut problemlos.

Für die Positionierung jetzt das TTextLayout und alles ist schick

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#17

AW: Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?

  Alt 7. Mär 2017, 11:19
Gratuliere!

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#18

AW: Höhe eines mit FillText in Firemonkey gezeicheten Textes ermitteln?

  Alt 7. Mär 2017, 12:30
Hat jemand dazu vielleicht eine Idee?
Ja...

Ich render mit meiner Engine 5-8 A4 Seiten (mehr brauche ich nicht, geht aber) Ich setze einfach Bitmap an Bitmap auf eine Scrollbox...

Screenshoot von der Windows-Version (ging jetzt einfacher) aber geht auf allen Plattformen...

Ich kann auch Blocksatz.
Und auch Fonts und Farbe!

Die Daten kommen aus eine XML-Datei und werden per TCP-IP übertragen und in der App in einer Datenbank gespeichert. Gent natürlich auf per App-Teathering.

Die Engine hat ca. 2500 LOC...

Mavarik
Miniaturansicht angehängter Grafiken
screen.png  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:21 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