AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

Ein Thema von AJ_Oldendorf · begonnen am 8. Okt 2020 · letzter Beitrag vom 8. Okt 2020
Antwort Antwort
AJ_Oldendorf

Registriert seit: 12. Jun 2009
Ort: Stadthagen
384 Beiträge
 
Delphi 10.3 Rio
 
#1

Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

  Alt 8. Okt 2020, 08:18
Hallo zusammen,
ich habe folgendes Problem:

Eine sehr umfangreiche Anwendung (kann kein Source posten und bekomme es kurioserweise nicht nachgestellt in einer Testanwendung) läuft unter Delphi 10.3 ohne Probleme. Es geht konkret um OpenDialoge/SaveDialoge, dass Execute.

Genau die gleiche Anwendung nach Delphi 10.4.1 kopiert, führt bei den genau den gleichen OpenDialogen/SaveDialogen im Execute zu einer Debugger Exception.
Beim Anhalten lande ich irgendwo, womit ich nichts anfangen kann (siehe Anhang).
Beim Fortsetzen geht die Meldung kurz weg, kommt aber sofort wieder (siehe Anhang).

Wenn ich das Execute auskommentiere und direkt die Datei öffne/speichere mit den Funktionen die "hinter" dem Execute stehen, geht auch alles. Es liegt wirklich an dem Execute und ich kann beide Anwendungen unter D10.3.3 und D10.4.1 nebeneinander halten und die Exception entsteht immer genau in dem Moment, wo der Dialog kurz aufgeht (man sieht ihn also) und dann kommt sofort die Exception.

Hat dazu jemand eine Idee?
Miniaturansicht angehängter Grafiken
2020.10.08-09_13_54-001.png   2020.10.08-09_13_32-001.jpg  
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

  Alt 8. Okt 2020, 08:28
.. vielleicht mal MadExcept installieren und dort den Stack anschauen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.151 Beiträge
 
Delphi 12 Athens
 
#3

AW: Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

  Alt 8. Okt 2020, 08:35
Knallt es beim Aufrufen/Anzeigen oder erst nach Dateiauswahl/Schließen?

Der Delphi Debugger hat bereits auch schon einen Stacktrace.
(hier, im Debugger, braucht man nicht unbedingt MadExcept, Eurekalog und Co.)

Der Fehler kann aber auch dem Windows-Explorer kommen.
Diese Fenster kommen von ihm und z.B. Filter, Icons, OverlayIcons und den Preview kommen aus Plugins von/in Ihm.

Speicheradressen aus Fehlermeldung (gibt es hier nicht) oder aus der Assembleransicht sagen garnichts aus, ohne dass man weiß welches Modul (EXE/DLL) an dieser Adresse liegt.
Ohne den Stacktrace können wir hier also nichts erkennen. (falls der Stack nicht gefüllt wird, noch einmal [F7] probieren.

In Win64 braucht man jetzt mit StackFrames und Dergleichen nicht mehr zu kämpfen ... dort gibt es nur noch eine CallingConvention und die Frames sind, glaub ich, auch immer aktiv.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 8. Okt 2020 um 08:40 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

  Alt 8. Okt 2020, 08:43
Hallo,
ist es wirklich der 100% gleiche Quellcode?

Was machst Du zwischen dem Create und Execute des Dialoges?
Heiko
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
Ort: Stadthagen
384 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

  Alt 8. Okt 2020, 08:51
Also der Fehler entsteht sofort, wenn man den Dialog sieht. Man schafft es gar nicht erst, etwas anzuklicken...

Ist das der Stacktrace, den du meinst @himitsu?
Der erste Screenshot ist beim Anhalten, der zweite nach 1x F7 drücken.

@hoika: Absolut identischer Source. Ich habe D10.3.3 in einer VM, D10.4.1 im Host.
Ich kopiere immer das gesamte Source Verzeichnis. D10.3.3 läuft. D10.4.1 nicht.
Miniaturansicht angehängter Grafiken
2020.10.08-09_48_47-001.jpg   2020.10.08-09_49_13-001.jpg  
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
Ort: Stadthagen
384 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

  Alt 8. Okt 2020, 08:52
Achso, habe mich in das Execute mal rein debuggt.
Es knallt genau hier:

Vcl.Dialogs:
function TCustomFileDialog.Execute(ParentWnd: HWND): Boolean;

Result := Succeeded(Show(ParentWnd)); //<--- hier knallt es

Wenn ich bei der Debugger Exception den Haken setze für, ignoriere diese Exception, dann läuft auch alles normal weiter. Ich kann den Dialog bedienen und auch auf Speichern klicken...
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
Ort: Stadthagen
384 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

  Alt 8. Okt 2020, 09:17
noch zwei Erkenntnisse:
Ich habe jetzt 26x auf Fortsetzen geklickt (in der Debugger Exception) und danach kam diese nicht mehr und ich kann den Dialog (SaveDialog) ganz normal bedienen...

Die Exception kommt nur, wenn ich die Anwendung aus dem Debugger starte. Starte ich die Exe so, dann klappt alles ohne Probleme.

Geändert von AJ_Oldendorf ( 8. Okt 2020 um 09:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

  Alt 8. Okt 2020, 11:26
C0000005 hört sich nach externe Exception an.
Ich würde darauf Tippen das sich eine ShellExtension mit der Delphi 10.4-IDE/Debugger beißt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
AJ_Oldendorf

Registriert seit: 12. Jun 2009
Ort: Stadthagen
384 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Unterschied Opendialog/Savedialog .Execute zwischen D10.4.1 <-> D10.3.3

  Alt 8. Okt 2020, 12:17
Im konkreten Fall geht es um eine CSV Datei zum speichern.
Aber selbst, wenn ich InitialDir/Filter/DefaultExt/FileName des Dialoges nicht setze (vor dem Execute), entsteht die Exception beim Execute.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 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