Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Seltsamer Fehler beim schließen (https://www.delphipraxis.net/181167-seltsamer-fehler-beim-schliessen.html)

Satyr 21. Jul 2014 15:42

Seltsamer Fehler beim schließen
 
Huhu,

ich wußte nicht wohin mit dem Thema, ich hoffe hier ist es richtig.

Mein Problem: Ich habe ein simples Programm das ich per Form1.close; schließe. Macht das Programm auch. NACH dem Schließen kommt von Windows die Meldung "Ein Problem hat die richtige ausführung dieses Programmes verhindert". Es wurde aber alles richtig ausgeführt.
Das merkwürdige ist, diese Meldung kommt nur auf PC's auf denen keine Delphiumgebung installiert ist. Von WinXP über Vista, Win7 und Win8.1.
Ist kein Delphi installiert, bekomme ich diese Meldung. Ist es installiert (aber nicht ausgeführt), bekomme ich sie nicht. Und wenn ich sie bekomme, dann nur NACH dem schließen des Programms.

Was ist das?

Bin für jede Hilfe dankbar...

Gruß,
Andreas

himitsu 21. Jul 2014 16:29

AW: Seltsamer Fehler beim schließen
 
Irgendwo ein Problem beim Freigeben einer Form/Componente?
> OnDestroy, Finalize usw.

Vermuten würde ich eine Endlosschleife oder ein Deadlock (z.B. eine CriticalSection, bzw. Synchronize), welche hängen bleiben.



Nja, Debuggen wird hier etwas schwer, aber du kannst mal probieren, ob du das über den Remote-Debugger hinbekommst.
Dabei kann das Delphi auf einem anderem Rechner installiert sein und man debuggt dann über das Netzwerk (z.B. LAN, Internet oder VPN)

Und dann gibt es noch so Dinge wie Eurekalog und MadExcept,
bzw. selber manuell ein paar Logeinträge in eine Datei schteiben, bzw. über ein paar MessageBoxen prüfen, bis wo hin das Programm beim Beenden kommt.

Perlsau 21. Jul 2014 16:32

AW: Seltsamer Fehler beim schließen
 
Führst du in deinem Formular Form1 den Close-Befehl mit vorangestelltem Form1-Namespace aus?
Delphi-Quellcode:
Procedure TForm1.CloseExecute(Sender: TObject);
begin
  Form1.Close;
end;
oder
Delphi-Quellcode:
Procedure TForm1.CloseExecute(Sender: TObject);
begin
  Close;
end;

Satyr 21. Jul 2014 16:43

AW: Seltsamer Fehler beim schließen
 
@Perlsau

Ersteres, damit hatte ich bisher auch nie Probleme.

@himitsu

Mid MadExcept hatte ich es auf einem anderen Rechner mal getestet. Keine Probleme.
Wie schon geschrieben arbeitet und schließt das Programm ganz normal. Erst DANACH kommt von Windows diese Meldung.
Der Zeitpunkt irritiert mich, sonst hätte ich auf ein MemoryLeak getippt. Oder zumindest eine Fehlermeldung mit mehr Aussagekraft *grml*.

Perlsau 21. Jul 2014 16:49

AW: Seltsamer Fehler beim schließen
 
Vielleicht hast du ja jetzt doch ein Problem damit? Nimm diesen unnötigen und vor allem fehleranfälligen vorangestellten Namespace heraus. Den brauchst du nicht, denn du befindest dich ja bereits im Namespace "Form1".

Satyr 21. Jul 2014 17:01

AW: Seltsamer Fehler beim schließen
 
Hat leider nichts geändert...

himitsu 21. Jul 2014 17:37

AW: Seltsamer Fehler beim schließen
 
Zitat:

Zitat von Satyr (Beitrag 1266229)
Wie schon geschrieben arbeitet und schließt das Programm ganz normal. Erst DANACH kommt von Windows diese Meldung.
Der Zeitpunkt irritiert mich, sonst hätte ich auf ein MemoryLeak getippt. Oder zumindest eine Fehlermeldung mit mehr Aussagekraft *grml*.

Falsch, nicht dein Programm ist da bereits geschlossen beendet, sondern nur die MainForm (deine Form1) ist "ausgeblendet" oder vielleicht schon freigeben.

Das Programm läuft dennoch weiter, bis alle Aufräumaktionen beendet wurden und in einer dieser Aufräumaktionen wird es bei dir vermutlich ein Problem geben.

In der DPR mal nach dem
Delphi-Quellcode:
Application.Run;
eine MessageBox anzeigen. Kommt dein Programm denn wenigstens bis dort hin? (Dialog wird angezeigt)


Nie Probleme?
Kleines Beispiel:
Delphi-Quellcode:
FreeAndNil(Form1);
und jetzt versuche mal im OnDestroy auf Form1 zuzugreifen, denn das ist dann bereits NIL, da die Funktion eigentlich NilAndFree heißen müsste, da sie zuerst die Variable auf NIL setzt und danach dann das Free aufruft.
Wenn du unbedingt einen NameSpace nutzten willst, dann benutzte auch den Richtigen, also
Delphi-Quellcode:
Self.Close;
(innerhalb einer TForm1-Methode aufgerufen).

Satyr 21. Jul 2014 17:47

AW: Seltsamer Fehler beim schließen
 
Ein Dialog nach Run ist kein Problem. Wie gesagt, das Programm läuft ansonsten völlig normal.
Wenn ich Dich richtig verstehe, versucht das Programm nach dem Close noch auf Form1 zuzugreifen, oder?
Ich wüsste zwar nicht wo ich danach noch explizit code habe aber ich gehe morgen mal die Komponenten durch. Vielleicht versuchen die AlphaSkins noch irgendwo ein skinning nach dem Close oder sowas.

Sir Rufo 21. Jul 2014 17:57

AW: Seltsamer Fehler beim schließen
 
Wie lautet denn der Dateiname von dem Programm?

Satyr 21. Jul 2014 18:03

AW: Seltsamer Fehler beim schließen
 
"concepter.exe", warum? Kann man da etwas falsch machen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr.
Seite 1 von 4  1 23     Letzte »    

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