Warum prüfst du nicht beim Klick auf den Button, ob eines der anderen Fenster geöffnet ist / angezeigt wird und verhinderst dann ggf. das öffnen des neuen Fensters?
Ganz stumpf (und nur vom PRINZIP):
Delphi-Quellcode:
if Form2.visible or
Form3.visible or //auch nicht sich selber versuchen nochmal zu öffnen
Form4.visible then //für jede weitere Form ein weiteres "or"
begin
showmessage('Bitte erst das andere Fenster schließen.');
exit;
end else
begin
Form3.visible := true;
//hier dann die Datenverbindung herstellen
end;
//im onClose & onDestroy des jeweiligen Forms dann die Datenverbindung trennen