Einzelnen Beitrag anzeigen

Benutzerbild von cramer
cramer

Registriert seit: 23. Jun 2004
Ort: Velbert (NRW)
96 Beiträge
 
Delphi 2006 Enterprise
 
#1

Nicht sichtbaren TPaintBox Inhalt speichern

  Alt 10. Feb 2015, 11:51
Delphi-Version: 2006
Ich baue mir eine QR-Code-Grafik in einer PaintBox MyPaintBox zusammen.
Diese Paintbox liegt auf einem TabSheet, welches der Benutzer nicht sieht.
Das klappt alles, bis auf das Speichern.
Code:
// MyPaintBox speichern ...
   if not QRCodeSave( 'c:\temp\test.bmp', MyPaintBox ) then
// ..

function QRCodeSave( aFileName : string; aPaintBox : TPaintBox ) : boolean;
var xBitmap        : Graphics.TBitmap;
    xWidth, xHeight : Integer;
Begin
   result := false;
   if fileDirOk( aFileName ) then begin
      try
         xWidth        := aPaintBox.Width;
         xHeight       := aPaintBox.Height;
         xBitmap       := Graphics.TBitmap.Create;
         xBitmap.Height := xHeight;
         xBitmap.Width := xWidth;
         xBitmap.Canvas.CopyRect( Rect( 0, 0, xWidth, xHeight ),
                                  aPaintBox.Canvas,
                                  Rect( 0, 0, xWidth, xHeight ) );
         try
            xBitmap.SaveToFile( aFileName );
            result := true;
         except
            on e:exception do begin
               FehlerOk( 'QR-Code Fehler : ' + e.Message );
            end;
         end;
      finally
         xBitmap.Free;
      end;
   end else begin
      // Ups
   end;
end;

In der gespeicherten Datei befindet sich dann ein Ausschnitt aus dem gerade sichtbaren Tabsheet der der Position und dem Bereich der PaintBox entspricht.

Wenn ich die PaintBox im sichtbaren Bereich unterbringe, was aber nicht so sein soll, wird der richtige Inhalt gespeichert.

Die Frage ist nun, wie bekommt man den Inhalt einer nicht sichtbaren PaintBox in eine Datei.

Thanks in advance
Erfahrung ist etwas, daß man erst bekommt, kurz nachdem man es dringend gebraucht hätte.

Geändert von cramer (10. Feb 2015 um 12:08 Uhr)
  Mit Zitat antworten Zitat