Ob ein Dialogfeld geöffnet ist weißt Du ja, denn
Delphi-Quellcode:
ShowMessage('Vorm Dialog');
// hier wird gewartet, bis Du das Meldungsfenster weg klickst
// Dann kommt das OpenDialog
OpenDialog1.Ecxecute;
// und wartet wieder, bis Du es weg klickst
// Und nochma
ShowMessage('Nach dem Dialog');
// Du weißt bescheid ;)