AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Exakte Druckposition der letzten RichEdit-Zeile herausfinden
Thema durchsuchen
Ansicht
Themen-Optionen

Exakte Druckposition der letzten RichEdit-Zeile herausfinden

Ein Thema von gullatrulla · begonnen am 7. Jul 2008 · letzter Beitrag vom 8. Jul 2008
 
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Exakte Druckposition der letzten RichEdit-Zeile herausfi

  Alt 8. Jul 2008, 19:07
Zitat von gullatrulla:
Gibt es eine Möglichkeit die exakte Pixel-Druckposition der letzten RTF-Zeile zu ermitteln,
damit die "manuelle" Zeile exakt unterhalb des RTF-Dokuments gedruckt werden kann?
Auch die gibt es, obwohl dazu heutzutage nichts mehr im MSDN zu finden ist. Du kannst dazu die Kombination von EM_FORMATRANGE(0)/EM_DISPLAYBAND nutzen - Beispiel:
Delphi-Quellcode:
//----------------------------------------------------------------------
Printer.BeginDoc;
...
SendMessage(Handle, EM_FORMATRANGE, 0, 0);
try
  Range.rcPage := Range.rc; // Rechteck merken, falls nicht bereits geschehen
  repeat
    chrg.cpMin := LastChar;

    Range.rc := Range.rcPage; // Rechteck wiederhestellen
    LastChar := SendMessage(Self.Handle, EM_FORMATRANGE, 0, LParam(@Range));
    SendMessage(Self.Handle, EM_DISPLAYBAND, 0, LParam(@Range.rc));
    { In Range.rc.bottom steht jetzt die unterste Pixelposition,
      bis zu der etwas gedruckt wurde. }


    if (LastChar < MaxLen) and (LastChar <> -1) then begin
      NewPage;
      Inc(PageCountRich);
    end;
  until (LastChar >= MaxLen) or (LastChar = -1);
finally
  SendMessage(Handle, EM_FORMATRANGE, 0, 0);
  SetMapMode(hdc, OldMap);
end;

Printer.EndDoc;
Sicher musst du damit noch ein bisschen herumprobieren. Ich benutze es, um damit einzelne (stellenweise mehr als 2000) RTF-Fragmente zusammen mit Kapitel- und Abschnittsüberschriften wie Fließtext als ein Dokument auszudrucken.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
 


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