Das TimerEvent kommt in einem eigene Thread daher und greift unsynchronisiert auf die
VCL zu. Wenn Du die
VCL-Zugriffe weglässt läuft es.
Daran liegt es auch nicht.
Sobald ich in der Callbackroutine etwas mache (z.B. nur ein globales Flag setzen) kommt der Fehler.
Ich habe jetzt mal aus zwei Opensource Projekten die auf dem gleichen Prinzip gelösten Highres Timer ausprobiert.
Hier kommt der gleiche Fehler.
(New Audio Components
package und basdll)
Da die Routine unter Delphi 7/Win 7 schon mal funktionierte, liegt es an Windows 8 oder XE2.
(Ein Kollege hat ausprobiert unter C# funktioniert diese Routine.)
Da TimeSetEvent ohnehin obsolet ist, probiere ich jetzt mal die Alternative.
Gruß Peter