Ich verwende für mein Piano einen Loop um den Song zu spielen
Leider muss ich feststellen das dieser sehr CPU lastig ist.
Also 25% hab ich dann schon.
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;
Ich verwende zwar Winprocessmessages damit andere prozesse weiterlaufen können
dadurch habe ich aber ein stocken im song ..
Delphi-Quellcode:
procedure WinProcessMessages;
var
ProcMsg: TMsg;
begin
while PeekMessage(ProcMsg, 0, 0, 0, PM_REMOVE) do
begin
if (ProcMsg.message = WM_QUIT) then
Exit;
TranslateMessage(ProcMsg);
DispatchMessage(ProcMsg);
end;
end;
Hat jemand nen Tip für mich wie ich das besser Händeln könnte ?
gruss