Zitat:
Im Timer funktioniert nicht
Ums nochmal ordentlich zu erklären:
Wenn alles in TTimern ist, dann läuft alles im Hauptthread
und da eine CriticalSection mehrfache Zugriffe vom selben Thread erlaubt, wird auch alles durchgelassen.
Das ist, damit ein Thread sich nicht selber sperrt, wenn er mehrmals durch die selbe CS will/muss.
* Also entweder keine Timer/Messages verwenden und Zugriffe aus unterschiedlichen Threads
* oder eine andere Sperre verwenden, welche nicht threadaffine arbeitet.
System.SyncObjs.pas (TMonitor, TCriticalSection, TMultiReadSingleWriter und Co. arbeiten threadaffine)
PS: Man kann auch den Button deaktivieren, so lange das OnClick arbeitet. (ist nur bissl unschön, wenn der Button fukusierbar ist und der Bokus danach wo anders steht)