Announcement

Collapse
No announcement yet.

Zugriffsverletzung bei Quickreport

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriffsverletzung bei Quickreport

    Zugriffsverletzung bei Testroutine mitQuickreport:
    Ich habe erstellt:
    1. Form2 mit Quickreport(quickrep1) mit einem QRLabel1.
    BeforePrint: QRLabel1.caption:='Test'
    2. Form1 mit Button1.
    Button1 löst folgende schlichte Prozedur aus:
    For i:=1 to Smax DO Form2.Quickrep1.Print //Smax global
    definierte Variable

    Beim ersten Aufruf gehts gut.
    Beim zweiten oder dritten Aufruf nach ca 10 Ausdrucken kommts:
    ZUGRIFFSVERLETZUNG 00143EAF und nach Abbbruch des Programmes
    erscheint:
    EAccessValuationERROR bei F..F015
    Zugriffsverletzung bei Adresse 0..015

    Wie kann man das verhindern ???

  • #2
    Das gleiche Problem habe ich auch. Es zeigt sich jedoch in einer anderen Ausprägung:

    Ich habe mehrere Previews hintereinander. Jedesmal wenn ein modales Preview geschlossen wird, erstelle ich automatisch das nächste. Hierbei hat sich gezeigt, daß es zu Zugriffsverletzungen kommt, sobald man die einzelnen Reporte zu schnell schließt. Irgendwie scheint es dort ein Destructor-Problem auf Seiten der Report-Komponente zu geben. Ich würde einfach mal den Report selber erschaffen, die Schleife durchlaufen, den Report zerstören - einige Sekunden dem Programm geben, dann wieder von vorne testen.

    Wenn der Fehler nicht mehr auftritt, würde das auch meine Theorie erklären

    Comment


    • #3
      Laut QuSoft FAQ ist das ein noch nicht behobener Quickreport Bug. Abhilfe schafft bei mir der Aufruf von Application.ProcessMessages vor und nach dem QReport.Preview Aufruf

      Comment


      • #4
        Ich habe beste Erfahrungen damit gemacht, folgende Schleife laufen zu lassen:
        repeat
        Application.ProcessMessages;
        until QuickRep1.Available

        Comment


        • #5
          Ich habe beste Erfahrungen mit folgender Schleife gemacht:

          repeat

          Application.ProcessMessages;

          until QuickRep1.Available

          Comment

          Working...
          X