Moin 1234588,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS.
Was mir als erstes ins Auge sticht:
while b=false do
Sollte besser heissen:
while not b do
Der direkte Vergleich würde hier wohl funktionieren, aber zum einen ist die zweite Variante gemeinhin lesbarer, zum anderen kann man sich u.U. Probleme einhandeln, wenn man sich daran gewöhnt so zu vergleichen, da, i.d.R. false als 0, true aber als <> 0 verstanden wird.
Ich bin mir nicht ganz sicher, ob Deine Vorgehensweise garantiert sicher funktioniert.
Du greifst mit HideCaret auf eine
VCL-Komponente (TRichEdit) zu. Dies sollte man aber nur über die Thread-Methode Synchronize tun, da die
VCL-Komponenten nicht garantiert thread-safe sind.
Der Zugriff erfolgt zwar indirekt, über
Handle, aber es könnte sein, dass das dennoch zu Problemen führt.
(wie gesagt: Sicher bin ich mir nicht).