Form schließt schneller als Midi-Device
-
Hallo,
in einer Midi-Anwendung soll vorm Schließen des Programms das Midi-Device geschlossen werden (u.a. um evtl. noch klingende Töne zu beenden).
In Variante A funktioniert es wie gewünscht, sobald der Dialog geöffnet wird. - Aber am Ende eines Programms einen Dialog wegklicken, ist ja äußerst unschön.
In Variante B blende ich als Alternative dazu einen Ende-Bildschirm ein, der nach drei Sekunden automatisch geschlossen wird. Aber leider wird das Midi-Device nicht geschlossen.
Woran kann das liegen? Verhält sich ein Form anders als eine Dialog?
Variante A
void __fastcall TForm_Main::FormClose(TObject *Sender, TCloseAction &Action) { DM->sub_MidiDevice_schliessen(); MessageDlg("Hier bei FormClose" , mtInformation, TMsgDlgButtons() << mbOK, 0); }Variante B
void __fastcall TForm_Main::FormClose(TObject *Sender, TCloseAction &Action) { DM->sub_MidiDevice_schliessen(); // Form mit Timer, das nach 3 Sekunden geschlossen wird Form_Ende = new TForm_Ende(Application); Form_Ende->ShowModal(); delete Form_Ende; }Gruß
Leo
-
Viel interessanter/relevanter wäre vermutlich der Code aus sub_MidiDevice_schliessen(), ggf. auch der Code, mit dem du das Device öffnest.
-
Setz in DM->sub_MidiDevice_schliessen();
ne Variable. Deine Form bendet, wenn Variable gesetzt wurde! (Das kannste mit nem Timer abfragen)Als Variable geht z.B. Form1->Tag