Delphi-PRAXiS

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 Text auf Graphik schreiben (https://www.delphipraxis.net/150476-text-auf-graphik-schreiben.html)

waldforest 18. Apr 2010 08:27


Text auf Graphik schreiben
 
Hallo,
ich würde gerne einen Text einer Graphik überlagern. Den beschriebenen Weg über RichEditToCanvas

http://www.delphipraxis.net/internal...chedittocanvas

Delphi-Quellcode:
procedure RichEditToCanvas(RichEdit: TJvRichEdit; Canvas: TCanvas; PixelsPerInch: Integer);
var
  ImageCanvas: TCanvas;
  fmt: TFormatRange;
begin
  ImageCanvas := Canvas;
  with fmt do
  begin
    hdc := ImageCanvas.Handle;
    hdcTarget := hdc;
    // rect needs to be specified in twips (1/1440 inch) as unit
    rc := Rect(0, 0,
      ImageCanvas.ClipRect.Right * 1440 div PixelsPerInch,
      ImageCanvas.ClipRect.Bottom * 1440 div PixelsPerInch);
    rcPage := rc;
    chrg.cpMin := 0;
    chrg.cpMax := RichEdit.GetTextLen;
  end;
  SetBkMode(ImageCanvas.Handle, TRANSPARENT);
  RichEdit.Perform(EM_FORMATRANGE, 1, Integer(@fmt));
  // next call frees some cached data
  RichEdit.Perform(EM_FORMATRANGE, 0, 0);
end;
bekomme ich nicht hin. Die Graphik wird durch den Inhalt von Richedit überschrieben wird (sprich Leerzeilen löschen das Image).

Ziel ist, den Hintergrund als Vorlage (Briefpapier) zu nutzen.

Die Jedi RichEdit kann zwar die Graphik anzeigen, allerdings habe ich keine Möglichkeit gefunden, hier Text zu überlagern.

Hat jemand einen Tipp ?

rollstuhlfahrer 18. Apr 2010 09:01

Re: Text auf Graphik schreiben
 
Evtl. malt das TJvRichEdit seine leeren Felder vollständig mit Weiß aus, sodass der Hintergrund dann überschrieben wird. Alternativ kannst du auch in deiner Zeichenfunktion ein Bitmap erstellen, welches die Maße des Zielbitmaps hat und dann auf das lokaler Bitmap das TJvRichEdit zeichnen kassen. Dann kopierst du das lokale Bild auf das Ausgangsbild mit MSDN-Library durchsuchenBitBlt und als letzten Parameter nutzt du SRCPAINT. Dann sollte sich das Ergebnis einstellen, was du erwartest.

Bernhard

chaosben 18. Apr 2010 12:03

Re: Text auf Graphik schreiben
 
[ot]
Und bitte nicht Graphik (diese Schmerzen ;) ) ... entweder Grafik (deutsch) oder Graphic (englisch)

Danke :)
[/ot]


//Edit: Ok, laut Duden ist es richtig ... aber diese Schmerzen ... selbst Google ist der Meinung, das das nicht stimmt

rollstuhlfahrer 18. Apr 2010 12:14

Re: Text auf Graphik schreiben
 
[ot]Warum? Graphik ist laut Duden neben Grafik auch richtig.[/ot]

Bernhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 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