Tag - Delphi

Using threads in Delphi

It's easy to use threads in Delphi. Synchronize is good :-)   Function Contents uses System.Classes, System.SysUtils, Vcl.Forms; procedure Wait(Proc: TProc); var Thread: TThread; begin Thread := TThread.CreateAnonymousThread(procedure() begin Proc; end); Thread.FreeOnTerminate := True; Thread.Start; while not Thread.Finished do Application.ProcessMessages; end; How to use Wait(procedure() begin // .... Contents end);

Registry Monitoring (Delphi)

How to use procedure RegistryMonitor(RootKey: HKEY; Key: string; Proc: TProc; WatchSub: boolean); begin TThread.CreateAnonymousThread(procedure var Reg: TRegistry; Event: cardinal; begin Reg := TRegistry.Create; Reg.RootKey := RootKey; if Reg.OpenKeyReadOnly(Key) then begin Event := CreateEvent(nil, False, False, nil); if Event > 0 then begin while True do begin RegNotifyChangeKeyValue(Reg.CurrentKey, WatchSub, REG_NOTIFY_CHANGE_LAST_SET, Event, True); if WaitForSingleObject(Event, INFINITE) = WAIT_OBJECT_0 then TThread.Synchronize(TThread.CurrentThread, procedure begin Proc end); end; end; end; Reg.Free; end).Start; end; // Proc: command input // WatchSub: subordinate ...