Zitat von
NicoDE:
OK, eigentlich habe ich nur versucht meine Klasse an deine Vorlage anzupassen
Na ja, er gibt es wemfalls zu.
Aber ich hatte sowieso vergessen die Ereignisse zu synchronisieren.
Ich habe gesehen, dass du beim Beenden das Objekt gar nicht frei gibst.
Und wenn ich das jetzt so mache:
Delphi-Quellcode:
{*
* Procedure: TForm1.Button1Click
* Start monitoring
* Author : michael.puff
* Date : 2006-03-10
*}
procedure TForm1.Button1Click(Sender: TObject);
begin
RegNotifier := TRegNotifier.Create(HKEY_LOCAL_MACHINE, LMKEY);
with RegNotifier do
begin
OnRegKeyChanged := Self.OnRegKeyChanged;
OnRegKeyFailure := Self.OnRegKeyFailure;
Resume();
end;
end;
{*
* Procedure: TForm1.Button2Click
* Stop monitoring
* Author : michael.puff
* Date : 2006-03-10
*}
procedure TForm1.Button2Click(Sender: TObject);
begin
if Assigned(RegNotifier) then
begin
FreeAndNil(RegNotifier);
end;
end;
Dann reagiert das Fenster auf einmal nicht mehr.
Neue Erkenntnis:
Und wenn ich den Code von Button2Click im OnDestroy des Formulares habe, dann wird der Prozess auch nicht beendet.