Einzelnen Beitrag anzeigen

BambinatorXE

Registriert seit: 18. Jun 2019
3 Beiträge
 
#11

AW: Form in Service rendern

  Alt 9. Jul 2019, 23:37
da sieht man den Wald vor lauter Bäumen manchmal nicht.
Ihr habt mich auf genau die richtige Idee gebracht, vielen Dank!

Meine Lösung verwendet die PaintTo-Methode eines TForm (das ist die Methode, an die man immer nicht denkt...):
Delphi-Quellcode:
procedure TDisplayService.PaintForm;
var
  Bitmap: TBitmap;
begin
  Bitmap := TBitmap.Create;
  Bitmap.Width := DisplayForm.ClientWidth;
  Bitmap.Height := DisplayForm.ClientHeight;

  DisplayForm.PaintTo(Bitmap.Canvas, 0, 0);
  // hier kann das Bitmap jetzt komprimiert/verschickt/whatever werden
  Bitmap.Free;
end;
Funktioniert tadellos auch in einem Service. Ich habs zwar zum Test nur mit was ganz einfachem probiert, aber ich bin mir eigentlich ziemlich sicher, dass der Rest auch gehen sollte...
Die Funktion PaintTo rufe ich jedes mal auf, wenn sich was auf der Anzeige ändert (neue Werte, Uhrzeit etc.).

Dann kann ich mich jetz an die "echten" Probleme machen...

Danke euch, viele Grüße

Stephan
  Mit Zitat antworten Zitat