Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zugriffsverletzung (https://www.delphipraxis.net/25129-zugriffsverletzung.html)

franktron 1. Jul 2004 16:16


Zugriffsverletzung
 
hatt einer von euch eine idee wie ich herausfinden kann wo eine Zugriffsverletzung in meiner Soft. herkommen kann

Ich find die einfach nicht.

Christian Seehase 1. Jul 2004 16:18

Re: Zugriffsverletzung
 
Moin franktron,

erst einmal versuchen die Stelle möglichst genau einzugrenzen, an den fraglichen Stellen Breakpoints setzen, und dann im Einzelschritt (F7/F8 ) da durch.

franktron 1. Jul 2004 16:20

Re: Zugriffsverletzung
 
Hab ich auch schon ich weiss genau wo die zugriffsverltzung kommt aber nicht genau was die das soll.

Ich hab ein 2 Prog gemacht und da tritt der Fehler nicht auf.

shmia 1. Jul 2004 16:20

Re: Zugriffsverletzung
 
siehe: Delphi Fehlersuche

franktron 1. Jul 2004 16:21

Re: Zugriffsverletzung
 
@shima kenn ich schon finds trotzdem net :cry:

Christian Seehase 1. Jul 2004 16:22

Re: Zugriffsverletzung
 
Moin franktron,

Zitat:

Zitat von franktron
ich weiss genau wo die zugriffsverltzung kommt aber nicht genau was die das soll.

sorry, aber meine Kristallkugel ist zur Wartung.
Wie wäre es mit etwas Source? ;-)

franktron 1. Jul 2004 16:36

Re: Zugriffsverletzung
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz