Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Di 01.05.07 16:56 
Hallo!

Kann mit bitte jemand sagen, warum der folgende Code nicht funktioniert? Result müsste "Textdatei" sein, es wird aber nur ein leerer String zurückgegeben.
Der Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TXT-Datei existiert!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create(KEY_READ);

  Reg.Rootkey := HKEY_LOCAL_MACHINE;

  if Reg.OpenKey('SOFTWARE\Classes', False) = False then Close; //hier wird das Programm NICHT beendet!
  //also ist hier nicht der Fehler!
  Result := Reg.ReadString('TXT-Datei');
  Reg.CloseKey;
  Reg.Free;
end;

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2556
Erhaltene Danke: 45

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Di 01.05.07 17:51 
Vergesst es - da sind sowieso nicht alle Dateibeschreibungen drin. Also bleibt mir nichts anderes übrig, als eine Dummydatei zu erzeugen und diese auf die Dateibeschreibung zu prüfen.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Di 01.05.07 19:59 
Wieder mal der Vollständigkeit halber: Die Funktion Reg.OpenKey(...) liefert einen boolschen Ausdruck zurück, wenn du nun noch ein = false dahinter setzt, bekommst du ja nur noch einen boolschen Ausdruck. Genauso gut könntest du schreiben: if (((a = true) = true) = true) then ...
Was ich damit sagen will: Man würde die Abfrage if Reg.OpenKey(xy) = false then mit if not Reg.OpenKey(xy) then ersetzen ;)
Ist einfach eine Sache des Programmierstils.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.