Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Registry-Probleme unter Vista

  Alt 28. Mär 2008, 10:48
Zitat von Popov:
Also ich verstehe immer noch nicht das Problem. Hast du vorher überhaupt überlegt was du antwortest und ob es einen Sinn ergibt? Anscheinend nicht. Was habe ich gesagt? Ich hab gesagt, daß etwas nicht gespeichert wird. Du wirfst mir vor, daß ich nicht prüfe ob es gespeichert wird. Wo ist da die Logik?
Er wirft dir gar nichts vor. Du verstehst nur nicht, was wir alle die ganze Zeit meinen.
Beispiel:
Delphi-Quellcode:
if Registry.OpenKey(...) then
begin
  ...;
  ...;
end;
Damit überprüfst du zwar ob die Funktion fehlgeschlagen ist oder nicht, hift dir aber bei der fehlersuche nicht weiter. Du sollste es so machen:
Delphi-Quellcode:
if Registry.OpenKey(...) then
begin
  ...;
  ...;
end
else
begin
  ShowMessage(SysErrorMessage(getLastError)); // oder entsprechend eine Exception werfen.
end;
Zitat:
Wie du siehst ergibt das was du schreibst keinen Sinn.
Wie du siehst ergibt das, was er schreibt sehr wohl Sinn.

Genau genommen müsste man es sogar so machen, um alles abzufangen:
Delphi-Quellcode:
procedure WriteToRegistry;
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  try
    try
      reg.Root := ...;
      if reg.OpenKey(...) then
      begin
        ...;
        ...;
      end
      else
        raise Exception:Create(SysErrorMessage(GetLastError));
    except
      raise Exception:Create(SysErrorMessage(GetLastError));
    end;
  finally
    reg.Free;
  end;
end;

...;
try
  WriteToRegistry
except
  on E: Exception do
    ShowMessage(E.Message);
end;
...;

Zitat:
Du bist ein sehr bedauernswerter Mensch. ...
Bitte klärt eure persönlichen Differenzen per E-Mail oder PN.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat