Ich möchte dann doch noch mal auf #1 zurückkommen:
Zitat von
EWeiss:
Delphi-Quellcode:
// Starte den Song
while PlayingSong do
begin
//Weiterlaufen bis die 16.tel Note (Pause) abgelaufen ist
while GetTickCount < Tick + TempoWait do
Winprocessmessages;
Tick := GetTickCount;
PlayNotes;
DrawGraphics(WinHandle);
hsi.nPos := StartX + XSizeMid;
SetScrollInfo(WinHandle, SB_HORZ, hsi, True);
end;
Du versuchst also die restliche Zeit damit abzuwarten, indem du immer wieder das System frägst, ob nicht irgendwelche Fensternachrichten da sind. Hier in der Mitte dieses Threads wurde auf die "richtige"
nonvcl-übersetzung des Delays hingewiesen. Jetzt kannst du ganz einfach dein ressourcenfressendes
while GetTickCount < Tick + TempoWait do Winprocessmessages;
durch ein simples
Delay(Tick + TempoWait - GetTickCount);
ersetzen. Dann sollte sich das ganze mit der Warterei gelöst haben.
Bernhard