Blöde Frage TForm1->Show() => Zugriffsverletzung



  • Sorry ich hab ne echt dumme Frage. Ich begreifs einfach nicht.

    if(Pausenow==0)   // Pausenow=0, ==> erster Alarm
      {
    
        ShowAlarm->Show();  // hier sitzt der Fehler
    
        WriteToLog("Am "+GetCurrentDateTime()+ " ==> Überprüfung durchgeführt ==> Alarm ==> Email gesendet");
    
        try
        { // Parameter der Funktion SendMail: (Subject   , Empfänger , Dateianhang , EmailText)
          //                          SendMail(AnsiString, AnsiString, TStringList*, TStringList*)
    
          Emailadressen->LoadFromFile(ini->ReadString("newVerzeichnisse","Emailadressen","emails.txt"));
          VerifyServer();
          for(i=0; i<Emailadressen->Count; i++)
          {
            Empfaenger=Emailadressen->Strings[i];
            SendMail("Reinraum ==> Alarm",Empfaenger,Dateianhang,EmailText);
          }
        }
        catch(...)
        {
          WriteToLog("Am "+GetCurrentDateTime()+ " ==> Alarm-Email ==> Exception ausgelöst");
          ShowAlarm->Show();
          ShowAlarm->Close();
        }
        ShowAlarm->Close();
        Pausenow++;
        ini->WriteInteger("Timer","Pausenow",Pausenow);
      }
    

    dies ist ein Ausschnitt aus meinem Quellcode.
    Die Funktionen WriteToLog und Verify Server sind i.O.
    Wenn ich jedoch oben ShowAlarm->Show();
    auskommentiere kann ich das Programm ohne Probleme beenden. Ist dieser Eintrag drin, bekomme ich beim Beenden eine Fehlermeldung.
    ---------------------------
    Information
    ---------------------------
    In Projekt C:\Program Files\Borland\CBuilder6\Projects\Praktikant\Partikel Counter Alarm 2\ParticleCounterAlarm.exe trat ein Problem mit folgender Meldung auf: 'Zugriffsverletzung bei 0x004da35b: Schreiben von Adresse 0x00030ffc'. Prozeß angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
    ---------------------------
    OK
    ---------------------------

    Warum denn das ?? Ich verstehs einfach nicht. Diese Form ist nur ein Static Text zur Anzeige.

    FGGF



  • Existiert überhaupt ein Formular ShowAlarm? (hast du es erstellt?)
    Funktioniert der Code mti einem Leeren (neuen) formular?
    ...fragen über fragen...

    -junix



  • Jepp das Formular existiert. Und seither hat es eigentlich auch funktionert.
    Erst seit kurzem nicht mehr, Ich habe es jetzt auskommentiert. Es ist ja nicht so wichtig, aber ich verstehe die fehlermeldung dazu nicht. Was passiert wenn
    eine Form eine andere öffnet und die erste Form dann beendet wird ??

    FGGF

    PS: Mein Projekt ist fertig. Danke nochmal an alle die mir geholfen haben, auch wenn ich teilweise dumme Fragen gestellt habe oder langsam im kapieren war. 😋



  • Könnte es sein, dass du irgendwelche Events verarbeitest, welche diese Zugriffsverletzung auslösen könnten?

    -junix



  • Wann rufst du die Funktion auf, in der ShowAlarm->Show vorkommt?
    Auch Formulare werden beim Beenden mittels delete gelöscht.
    Hast du überprüft, ob ShowAlarm vielleicht vor deinem Aufruf schon gelöscht wurde?


Anmelden zum Antworten