Einzelnen Beitrag anzeigen

Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#5

Re: Rechenintensive Funktion verhindert Ausführung

  Alt 13. Dez 2005, 01:58
Erstmal vielen Dank Yankee für deine Erklärung. Endlich weiss ich jetzt wie ProcessMessages funktioniert, das war mir wirklich immer ein Rätsel. Nochmals vielen Dank!

Also ich muss ja kein Geheimnis machen, um was es genau geht Ich muss allerdings dazu sagen, dass das Problem wohl doch einen etwas anderen Ursprung hat:
Ich programmiere ja an einem ISDN Anrufmonitor. Wenn ein Anruf eingeht, wird OnIncomingCall aufgerufen. Hier ist nun eine Abfrage drin, ob der Anrufer im Telefonbuch steht und unter anderem eben auch, ob der Anrufer einen speziellen Anrufklingelton hat. Wenn ja wird dieser abgespielt.
Wurde nun ein eingehender Anruf erkannt, der allerdings sofort wieder getrennt wird/wurde, so hat er OnDisconnect nicht aufgerufen. In OnDisconnect stand nämlich u.a. dass die Klingeltonwiedergabe gestoppt werden soll. Auch andere Funktionen wie z.B. Label1.Caption := 'Test'; wurden NICHT aufgerufen.

Nun gab es 2 Auffälligkeiten:
  • Wenn ich den Befehl "Klingeltonwiedergabe stoppen" in OnDisconnect auskommentiert hatte, funktionierte es.
    und
  • wenn ich eine ShowMessage an den Anfang von der OnDisconnect Prozedure stellte, funktionierte auch alles.

Da beides ja keine zufriedenstellende Lösung für mein Problem war, habe ich try...finally probiert und das hat bei meinen ersten Tests funktioniert.

Nun, bin ich gespannt auf eure Erkläerungen
  Mit Zitat antworten Zitat