Autor Beitrag
cocsy
Hält's aus hier
Beiträge: 2

Win 7
Delphi 2009 Prof.
BeitragVerfasst: Do 14.07.11 10:57 
Hi,


mein Prolem ist eine Zugriffsverletzung bei der Übergabe von mehreren Bitmaps. Ich arbeite mit Delpfi 2009 & Rave Report BE 7.6.2.

Bei der Übergabe der Bilder via. "WriteBlobData" habe ich für Bild1 und Bild2 zwei kein Problem! Erst beim Bild3 gibt es eine Zugriffsverletzung (siehe Code)!

Wenn ich die Abmessungen der Bilder anpasse und von 500x500 auf 64x64 reduziere, dann gibt es keine Zugriffsverletzung. (Das lässt auf ein Speicherproblem schließen.)

Hat jemand eine Idee?


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
procedure TMyReportingObj.RvGetCols(Connection: TRvCustomConnection);
begin
  with Connection do
  begin
    WriteField('Bild1', dtGraphic, 20'''');
    WriteField('Bild2', dtGraphic, 20'''');
    WriteField('Bild3', dtGraphic, 20'''');
    WriteField('Bild4', dtGraphic, 20'''');
  end;
end;
 

procedure TMyReportingObj.RvGetRow(Connection: TRvCustomConnection);
var st_Bild1, st_Bild2, st_Bild3, st_Bild4: TMemoryStream;
begin
  st_Bild1 := TMemoryStream.Create; 
  GetPicture(st_Bild1, 500500);    // zur Laufzeit erzeugtes Bild (Höhe = 500, Breite = 500 Pixel)
                                     // Bild wird als Bitmap erzeugt und als Stream übergeben.
  st_Bild2 := TMemoryStream.Create; 
  GetPicture(st_Bild2, 500500); 

  st_Bild3 := TMemoryStream.Create; 
  GetPicture(st_Bild3, 500500); 

  st_Bild4 := TMemoryStream.Create; 
  GetPicture(st_Bild4, 500500); 

  with Connection do
  begin
    try
      WriteBlobData(st_Bild1.Memory^, st_Bild1.Size); // st_Bild1.Size = 1000 054 Byte
      WriteBlobData(st_Bild2.Memory^, st_Bild2.Size);
      WriteBlobData(st_Bild3.Memory^, st_Bild3.Size);
      WriteBlobData(st_Bild4.Memory^, st_Bild4.Size);
 
    finally
      st_Bild1.Free;
      st_Bild2.Free;
      st_Bild3.Free;
      st_Bild4.Free;
    end;
  end;
end;


P.S. Es liegt nicht an den Bild3 oder einem anderen! ich kann auch Bild1 versuchen mehrfach zu übergeben und es klappt nicht.
cocsy Threadstarter
Hält's aus hier
Beiträge: 2

Win 7
Delphi 2009 Prof.
BeitragVerfasst: Do 21.07.11 11:05 
Hallo,


Das Problem konnte ich zwar nicht lösen aber ich habe eine Möglichkeit gefunden wie ich weiterkomme!

www.delphipraxis.net...d-2.html#post1112848

ich hoffe es hilft vieleicht jemanden weiter,

Gruß Jan