Wie bereits richtig erkannt, hängt die Trägheit der Open- und Save-Dialoge beim Start in der
IDE mit dem Debug-Modus zusammen. Damit muß man dann irgendwie leben. Kann man auch: Als Quasi-Notlösung habe ich mir angewöhnt, dort, wo ich beim Testen regelmäßig Open- und/oder Save-Dialoge benötige, für die Zeit des Testens und Entwickelns den Aufruf des Dialogs vorübergehend auszukommentieren und durch einen "fest verdrahteten" Dateinamen zu ersetzen.
Delphi-Quellcode:
Funktion DateiEinlesen : String;
begin
// If OpDlg.Execute
// Then
// Result := OpDlg.FileName
// Else
// Result := '';
Result := 'C:\Temp\MeinText.txt';
end;
Dem kann man über die Umgebungsvariable _NO_DEBUG_HEAD=1 entgegenwirken. Aber das alleine hilft nicht. Der weit größere Zeitverbrauch kommt durch das Starten von Threads durch all die ShellExtensions. Dabei bremst der Debugger sehr stark aus. Vor allem der Debugger von Delphi/C++Builder, da er eine "WaitForDebugEvent => PostMessage an DebugWindow-Thread => WaitForSingleObject" Architektur hat, die zusätzlich Zeit verbraucht.
Das ist heftig, da kann man sich einen Wolf warten, soviel Kaffee kann man gar nicht schlucken, wie man da jeden Tag kochen könnte.
Was ich jetzt nicht auf Anhieb verstehe: Was meinst du mit ShellExtensions? Sind das die Erweiterungen, die im Objektmenü des Explorers auftauchen? Wenn ja, würde es was bringen, diese beim Entwickeln vorübergehend abzuschalten?