Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Höhe des in JvRichEdit stehenden Inhalts (https://www.delphipraxis.net/99295-hoehe-des-jvrichedit-stehenden-inhalts.html)

Reinhardtinho 10. Sep 2007 10:42


Höhe des in JvRichEdit stehenden Inhalts
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

Wie kann ich die Höhe des in einem RichEdit vom Typ TJvRichEdit stehendem Text (ggf. mit Bildern) herausbekommen?


Anbei ein kleiner Screenshot, wie der Inhalt aussehen könnte. Ich benutze Delphi 5 Enterprise.

MFG
Lorenz

marabu 10. Sep 2007 12:32

Re: Höhe des in JvRichEdit stehenden Inhalts
 
Hallo Lorenz,

vielleicht hilft dir dieser Thread weiter: bounding rectangle eines fromatierten rtftextes ermitteln

Grüße vom marabu

Reinhardtinho 10. Sep 2007 12:35

Re: Höhe des in JvRichEdit stehenden Inhalts
 
Erstmal Danke,

ich habe die Funktion von Floke getestet, aber bei mir kommt folgender Fehler:

[Fehler] FRM_Main.pas(461): Undefinierter Bezeichner: 'TFormatRange'.

Kennt den Delphi 5 noch nicht oder muss noch zusätzlich eine andere Unit eingebunden werden?



MFG
Lorenz

marabu 10. Sep 2007 12:43

Re: Höhe des in JvRichEdit stehenden Inhalts
 
Hast du die Unit RichEdit eingebunden?

Delphi-Quellcode:
// D7: RICHEDIT.PAS

type
  {$EXTERNALSYM _formatrange}

  _formatrange = record
    hdc: HDC;
    hdcTarget: HDC;
    rc: TRect;
    rcPage: TRect;
    chrg: TCharRange;
  end;
  TFormatRange = _formatrange;

  {$EXTERNALSYM FORMATRANGE}

  FORMATRANGE = _formatrange;

Reinhardtinho 10. Sep 2007 13:29

Re: Höhe des in JvRichEdit stehenden Inhalts
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die Unit RichEdit hatte ich nicht eingebunden, dachte das hätte sich mit JvRichEdit erledigt. Naja, Danke.

So, jetzt kommt aber ein Fehler, wenn ich die Funktion zur Laufzeit aufrufe.

Und zwar bei folgender Zeile:

Delphi-Quellcode:
Assert(rv >= fr.chrg.cpMax);
Fehlermeldung siehe Anhang.


Könnt ihr mir da bitte weiterhelfen? Danke.

MFG
Lorenz

Reinhardtinho 11. Sep 2007 13:02

Re: Höhe des in JvRichEdit stehenden Inhalts
 
Weiß keiner Rat? :stupid:

marabu 11. Sep 2007 20:01

Re: Höhe des in JvRichEdit stehenden Inhalts
 
Hallo Lorenz,

hast du das Kapitel zur Prozedur Assert() in der Online Hilfe gefunden? Lies auch noch die Win32 Hilfe zu EM_FORMATRANGE - und dann entferne den Aufruf von Assert() einfach. Ich glaube Volker hat die Zeile nur aus Versehen noch im Code drin gehabt. Mit der Forderung (rv >= fr.chrg.cpMax) feuert die Assertion ja ohnehin immer dann, wenn alles in Ordnung ist.

Freundliche Grüße

Reinhardtinho 12. Sep 2007 16:05

Re: Höhe des in JvRichEdit stehenden Inhalts
 
Vielen Dank, die Funktion funktioniert soweit (wie der Name ja sagt).
Ein kleines Problem habe ich allerdings noch. Die Funktion liefert einen Rückgabewert von Typ TPoint, wie kann ich daraus die Höhe in Pixel ermitteln?

MFG
Lorenz

marabu 12. Sep 2007 16:30

Re: Höhe des in JvRichEdit stehenden Inhalts
 
Gehe mal davon aus, dass das benötigte Rechteck durch den Punkt (0,0) und GetRichEditTextExtent() bestimmt wird.

Reinhardtinho 13. Sep 2007 08:23

Re: Höhe des in JvRichEdit stehenden Inhalts
 
So, danke schon mal für die Tipps.

Ich habe nun 2 verschiedene Texte in meinem RichEdit eingegeben und mir dann mal die Koordinaten, die die Funktion als Rückgabewert liefert, ausgeben lassen.

Die Resultate sehen so aus:

1)
X 289
Y -372828

2)
X 289
Y -372835
Zitat:

Zitat von Delphi-Hilfe
X gibt die horizontale und Y die vertikale Koordinate des Punktes an.

Ein Wert von -372800 kommt mir als Pixelwert für die Höhe des Inhalts etwas komisch vor ??? :wiejetzt:

Ich habe den gleichen Inhalt genommen, wie der beim Screenshot im ersten Post. Nach dem Bild steht nichts mehr weiter.


Was mache ich denn nun schon wieder falsch? :wall:


MFG
Lorenz


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.
Seite 1 von 2  1 2      

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