Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.111 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 9. Aug 2002, 19:53
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat