So kleine Zeiteinheiten kannst'e im Grunde vergessen.
Die Zeitauflösung seitens Windows liegt für Sleep/Delay/GetTickCount/Timer bei aktuell durchschnittlichen Intervallen von je 15-16 ms.
Fazit: Bei diesen kurzen Intervallen für deine Pausen können diese nichtmal halbwegs richtig eingehalten werden.
Hier kommt es also besser, wenn die Schleife für eine bestimmte Zeit läuft und nicht eine bestimmte Anzahl und der "Fortschritt" des Einblenden über die aktuelle Zeit errechnet wird.
etwa so
Delphi-Quellcode:
C := GetTickCount;
while GetTickCount - C <= 765 do begin
AlphaBlendValue := Min((GetTickCount - C) div 3 , 255);
Application.ProcessMessages;
end;
AlphaBlendValue := 255;