Code:
procedure TFDM_RE.frReport1BeforePrint(Memo: TStringList; View: TfrView);
Var
Stream : TStream;
i : Longint;
begin
if View.Name = 'Memo_D4' then
Begin
If D_Master_SQL2.FieldByName('memop').IsNull then Exit;
Stream:=D_Master_SQL2.CreateBlobStream(D_Master_SQL2.FieldByName('memop'),bmRead);
Try
RxRichEdit1.Clear;
Stream.Position:=0;
RxRichEdit1.Refresh;
Application.ProcessMessages;
If Stream.Size>0 then
RxRichEdit1.Lines.LoadFromStream(Stream); //<= Da tritt der fehler
Finally
FreeAndNil(Stream);
End;
If RxRichEdit1.Lines.Count>0 then
Begin
i:=RxRichEdit1.Lines.Count-1;
While Trim(RxRichEdit1.Lines.Strings[i])='' do
Begin
RxRichEdit1.Lines.Delete(i);
i:=i-1;
End;
End;
RxRichEdit1.SelectAll;
RxRichEdit1.SelAttributes.Size:=11;
Stream:=TMemoryStream.Create;
Try
RxRichEdit1.Lines.SaveToStream(Stream);
RxRichEdit1.Clear;
Stream.Position:=0;
Memo1.Lines.LoadFromStream(Stream);
i:=Memo1.Lines.Count-1;
While i>0 do
Begin
If Trim(Memo1.Lines[i])='\par' then
Begin
Memo1.Lines.Delete(i);
i:=0;
End;
i:=i-1;
End;
Stream.Position:=0;
Stream.Size:=0;
Memo1.Lines.SaveToStream(Stream);
Application.ProcessMessages;
Stream.Position:=0;
TfrRXRichView(View).RichEdit.Lines.LoadFromStream(Stream);
finally
FreeAndNil(Stream);
End;
End;
end;
Der Fehler tritt ab und zu auf wenn man diese Befehl so ca. 40-50 mal aufruft (sogar mit pause)
Was macht diese Routine
Ist meine Rechnungsdruck(teil davon) und zwar lese ich eine RTF aus der
DB und änder ihn etwas, und lade ihn in den Report (Fastreport)
Ich benutze D7 Pro. Fastreport 2.52 und
MySQL DAC 2.2.4