Moin Mathias,
und wo?
Luckie sprach vom try/finally Block um das TRegistry Objekt auch garantiert wieder freizugeben.
Meiner Ansicht nach, müsste das Ganze sogar so aussehen:
Code:
[b]procedure[/b] SetWebBrowser(Path: [b]String[/b]);
[b]var[/b] Reg: TRegistry
[b]begin[/b]
Reg := TRegistry.Create;
[b]try[/b]
Reg.RootKey := HKEY_CLASSES_ROOT;
[b]if[/b] Reg.OpenKey('http\shell\open\command', false) [b]then[/b]
[b]begin[/b]
[b]try[/b]
[b]try[/b]
Reg.WriteString('', Path);
[b]except[/b]
[b]end[/b];
[b]finally[/b]
Reg.CloseKey;
[b]end[/b];
[b]end[/b];
[b]finally[/b]
Reg.Free;
[b]end[/b];
[b]end[/b];
Ein try/finally um das TRegistry Objekt garantiert wieder freizugeben, ein try/finally, um das
Handle garantiert wieder freizugeben, und ein try/except (nicht erforderlich) um ggf. einen fehlgeschlagenen Schreibversuch abzufangen.