Thema: Delphi Zugriffsverletzung

Einzelnen Beitrag anzeigen

franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

Re: Zugriffsverletzung

  Alt 1. Jul 2004, 16:36
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
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat