Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Debugger von Delphi XE x lügt

  Alt 13. Mär 2015, 16:29
Ich will dir ja nicht unterstellen dich im Debugger zu vertippen aber ich kann kein Fehlverhalten feststellen. Siehe angehängtes Bild: Wie erwartet ist die erste Auswertung True, die zweite False. Nach dem ersten OpenKey dreht es sich um.

Delphi-Quellcode:
program Project23;

{$APPTYPE CONSOLE}

uses System.SysUtils, System.Win.Registry, System.Classes, Winapi.Windows;

procedure registryAccess();
const
   registryPath:       String = 'Software\Günthersoft\meinProgramm';
   registrySubPath:   String = 'mySection';
var
   Reg : TRegistry;

   valueNames:   TStrings;
   valueName:   String;
begin
   Reg := TRegistry.Create(KEY_READ);
   Reg.RootKey := HKEY_CURRENT_USER;
   try
      OutputDebugString(PChar(
         'Key Exists ist ' +
         BooltoStr(Reg.KeyExists(registryPath), true)
      ));

      if Reg.KeyExists(registryPath) then begin
         Reg.OpenKey(registryPath, false);

         OutputDebugString(PChar(
            'Key Exists ist ' +
            BooltoStr(Reg.KeyExists(registrySubPath), true)
         ));

         if Reg.KeyExists(registrySubPath) then begin
            Reg.OpenKey(registrySubPath, false);
            valueNames := TStringList.Create();
            try
               Reg.GetValueNames(valueNames);
               for valueName in valueNames do WriteLn(valueName);
            finally
               valueNames.Destroy();
            end;
         end;
      end;
      Reg.CloseKey();
   finally
      Reg.Destroy();
   end;
end;

begin
  try
   registryAccess();
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  WriteLn(slineBreak,'Ende'); readln;
end.
Miniaturansicht angehängter Grafiken
registryaccess.png  
  Mit Zitat antworten Zitat