Ich würde deine hängenden Projekte mal mit zum Beispiel
Eurekalog laufen lassen. Das kann bei Hängern sehr helfen.
Delphi
IDE Menu Projekt > Eurekalog Optionen unter "Features > Hang Detection" "gewünschte" Zeit einstellen.
Die Meldungsdialoge verhalten sich seit irgendwann XE nicht mehr genau so wie bei D6/7. Da musst du entweder deinen Code umbauen oder die Dialogfunktion so anpassen, dass sich deine App unter den neueren Delphis wie zu D6/7 Zeiten verhält. Sehr wahrscheinlich wird dies helfen:
Application.NormalizeTopMosts;
Application.RestoreTopMosts;
Zum Beispiel so:
Delphi-Quellcode:
function MessgeBoxDlg(
const Msg:
string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin
Application.NormalizeTopMosts;
result :=
VCL.Dialogs.MessageDlg(Msg, DlgType, Buttons, HelpCtx);
Application.RestoreTopMosts;
end;
Danke jaenicke für den Windows Detective Tipp - kannte ich nicht.