So ich habe eine Lösung gefunden wie ich das Problem mit Rave 7.6.2 umschiffen kann. Merkwürdigerweise kommt der
Report damit klar wenn die Grafiken eine Auflösung haben von 531 x 189 Pixel was dem Grafik Objekt im Report
entspricht, das Objekt hat dort eine Größe von 45 x 16 mm. Und Grafiken die nicht in diese Auflösung passen
können nicht korrekt an den Report übergeben werden und so erscheint eine Zugriffsverletzung.
In der folgenden Lösung erstelle ich ein leeres Bitmap mit den "richten" Werten und kopiere einfach die Grafik
auf dieses Bitmap und das schicke ich zum Report und dann läuft es.
Delphi-Quellcode:
//'Unterschrift' Datei...
if Assigned(imgSignature.Picture.Graphic)
then begin
MemStream := TMemoryStream.Create;
try
Bitmap := TBitmap.Create;
try
try
//Bitmap erzeugen mit der entsprechenden Größe (45x16 mm)
Bitmap.PixelFormat := pf32bit;
Bitmap.Height := 189;
Bitmap.Width := 531;
//Unterschrift Grafik auf Bitmap Zeichnen
Bitmap.Canvas.StretchDraw(Rect(0,0,Bitmap.Width, Bitmap.Height), imgSignature.Picture.Graphic);
//Unterschrift in Speicher kopieren
Bitmap.SaveToStream(MemStream);
//'Unterschrift' an Report übergeben
Connection.WriteStrData('
', '
');
Connection.WriteBlobData(MemStream.Memory^, MemStream.Size);
except
on E:
Exception do ShowMessage(E.
Message);
end;
finally
Bitmap.Free;
end;
finally
MemStream.Free;
end;
end
else begin
//'Unterschrift'
Connection.WriteStrData(cmbSignature.Text, '
');
Connection.WriteBlobData(
nil^, 0);
end;
{else}
Ich hoffe das das jetzt alle Bugs waren im Rave Report System.