El problema no es con la función GetTickCount, que tiene sus manías pero esta no es una de ellas. Lo que pasa es que la utilizas dentro de un bucle, si no haces algún tipo de espera dentro del bucle este termina usando la CPU al 100%. Una solución sencilla es hacer una pequeña espera dentro del bucle.
Código Delphi
[-]
StartTick := GetTickCount;
While Running Do
Begin
If (GetTickCount - StartTick) > 1000 Then
Begin
FormPrincipal.LabelDelphi.Visible := not FormPrincipal.LabelDelphi.Visible;
StartTick := GetTickCount;
End;
Application.ProcessMessages;
Sleep(100); End;