Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Programm beenden (https://www.delphipraxis.net/191687-programm-beenden.html)

Walter Landwehr 10. Feb 2017 12:59

Programm beenden
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Leute bin am verzweifeln,

ich habe eine Anwendung die auf jeden Einzelplatzrechner problemlos beendet wird.
In einem Netzwerk kann ich das Programm starten und beenden.
Bein zweiten Start und beenden kommen dann folgende Meldungen.
siehe Anhang (Medlung1 dann Meldung 2)

Ich habe keine Ahnung woher die Meldungen kommen und warum nur auf einem Client im Netzwerk egal ob Client Server oder Peer to Peer.

Hat einer eine Idee.

Aviator 10. Feb 2017 13:23

AW: Programm beenden
 
Sieht irgendwie nach einem nicht initialisierten oder bereits freigegebenen Objekt aus. Schau mal ob du im OnClose einer Form oder in der DPR irgendwelche Dinge versuchst freizugeben bzw. darauf zuzugreifen.

Alternativ könntest du mal ShowMessage() oder eine Logging Funktion einbauen um dich ranzutasten. Oder ganz professionell MadExcept einbinden und dir den StackTrace ausgeben lassen.

mm1256 10. Feb 2017 14:12

AW: Programm beenden
 
Hallo Walter,

mein Instinkt sagt mir: Das riecht extrem nach Datenbank. Weil, Zitat: "...die auf jeden Einzelplatzrechner problemlos beendet wird" Ich würde darum erst mal in den Datenbank-Modulen die Initialization und Finalization Sektionen abklappern.

Walter Landwehr 14. Feb 2017 13:59

AW: Programm beenden
 
Ich habe jetzt mal viel ausprobiert. Die Datenbanken werden definitiv vor dem Beenden disconnected. Es ist auch seltsam dieser diese Meldungen nicht überall vorkommen sondern hauptsächlich bei Windows 10 Rechnern. Lasse ich die Software im Kompatibilitätsmoduns WindowsXP SP3 laufen funktioniert es. Habe keine Ahnung was es da für Unterschiede geben soll.

Whookie 14. Feb 2017 14:08

AW: Programm beenden
 
Ich tippe mal auf eine Rechtegeschichte ... seit Windows 7 werden hier die Zugriffsrechte (korrekter Weise) immer weiter eingeschränkt.
Das bedeutet dann aber auch, dass man als Programmierer passende Zugriffsrechte bereitstellen muss (in der Regel sollte das vom Installer der Applikation aus geschehen).

Der schöne Günther 14. Feb 2017 15:29

AW: Programm beenden
 
Zitat:

Zitat von Aviator (Beitrag 1361270)
Oder ganz professionell MadExcept einbinden und dir den StackTrace ausgeben lassen.

Da sogar ich das hinbekommen habe (nur JCL und nicht MadExcept): Auf jeden Fall und nie wieder ohne. Da stellen sich solche Rate-Fragen überhaupt nicht mehr.

Walter Landwehr 16. Feb 2017 08:41

AW: Programm beenden
 
was ist JCL?

Oh Schande auf mein Haupt. Es lag an folgenden Code:
Delphi-Quellcode:
  for x := 0 to ComponentCount - 1 do
    if Components[x] is TDataSource then
      TDataSource(Components[x]).Dataset := Nil;
  PatientQry.Close;  <---- Diese Zeile hat den Fehler verursacht.
Ich mache es nie wieder.

rokli 16. Feb 2017 09:20

AW: Programm beenden
 
Hallo Günter,

ich frag auch mal: Was meinst Du mit JCL statt madExcept?

Gruß

himitsu 16. Feb 2017 11:03

AW: Programm beenden
 
Bei Google suchenJCL ... Gut, man muß ein klein Bissl runterscrollen, um etwas zu finden, was mit Delphi zu tun hat.

In der "JEDI Code Library" gibt es auch ein paar Funktionen für die Exceptionbehandlung und zum Auslesen des Stacktraces.

rokli 16. Feb 2017 13:23

AW: Programm beenden
 
Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:00 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