Einzelnen Beitrag anzeigen

Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#53

AW: Timing problem

  Alt 8. Apr 2011, 19:34
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
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat