Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TRegistry (wert schreiben) (https://www.delphipraxis.net/6806-tregistry-wert-schreiben.html)

Pseudemys Nelsoni 23. Jul 2003 09:39


TRegistry (wert schreiben)
 
Hi,

hab schon die suche benutzt und alles gelesen, bei den anderen gehts wohl, bei mir irgendwie nicht...ich fang gerade erst mit dem registry an weil ich meine inis weghaben will, mein Test sah so aus:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  Reg: TRegistry;
begin
  Reg.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  Reg.OpenKey('GCC\TSChat', false);
  Reg.WriteString('bla', 'test');
  Reg.CloseKey;
  Reg.Free;
end;
ich erhalte beim ausführen immer den fehler...

http://www.angelfire.com/bug/delphi/error.JPG

"Registry" ist mit in den uses

mfg

sakura 23. Jul 2003 09:42

Re: TRegistry (wert schreiben)
 
Kann es sein, dass Dir die rechte fehlen, in diesem Bereich der Registry Daten zu ändern/zu schreiben. Versuche mal unter
Code:
  Reg.RootKey := [color=#ff0019]HKEY_CURRENT_USER[/color];
  Reg.OpenKey('[color=#f60000]Software\[/color]GCC\TSChat', false);
...:cat:...

Pseudemys Nelsoni 23. Jul 2003 09:59

Re: TRegistry (wert schreiben)
 
wenn ich es so abändere wie von dir beschrieben, bekomme ich folgenden fehler:

http://www.angelfire.com/bug/delphi/error2.JPG


Admin Rechte hab ich 100%


hab ich sonst noch was falsch? Danke für die hilfe

MathiasSimmack 23. Jul 2003 10:11

Re: TRegistry (wert schreiben)
 
Existiert der Schlüssel denn überhaupt schon? Wenn nicht, dann wäre
Code:
Reg.OpenKey('Software\GCC\TSChat',[color=red]true[/color]);
die Lösung. Und ein schöner try-finally-Block ist auch nicht zu unterschätzen!

Dagon 23. Jul 2003 10:18

Re: TRegistry (wert schreiben)
 
versuchs mal so:

Delphi-Quellcode:
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  Reg.OpenKey('GCC\TSChat', true);
  Reg.WriteString('bla', 'test');
  Reg.CloseKey;
  reg.free;

MathiasSimmack 23. Jul 2003 10:25

Re: TRegistry (wert schreiben)
 
Und wieder kein try-finally. :(

sakura 23. Jul 2003 10:29

Re: TRegistry (wert schreiben)
 
Quatsch :mrgreen: der Fehler liegt ganz wo anders...
Code:
// aus
Reg.Create
// wird
[color=#ff0000]Reg := TRegistry.Create;[/color]
...:cat:...

P.S. the master hat die Lösung auch in seiner versteckt ;-)

Pseudemys Nelsoni 23. Jul 2003 10:30

Re: TRegistry (wert schreiben)
 
hab das so mal getestet:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  Reg: TRegistry;
begin
  Reg.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  Reg.OpenKey('SOFTWARE\GCC\TSChat', true);
  Reg.WriteString('jo', 'test');
  Reg.CloseKey;
  Reg.Free;
end;
immernoch ein except fehler

also der ordner in HKEY_CURRENT_USER ist "Software\GCC\TSChat" rechts im fenster wenn der ordner "TSChat" markiert ist, ist nur (Standard) da. Also ich will einen neuen Key schreiben, aber geht irgendwie nicht :?:

Pseudemys Nelsoni 23. Jul 2003 10:36

Re: TRegistry (wert schreiben)
 
Jup jetzt gehts, danke @Sakura,Mthias,the_master.

es war das mit dem Create.

Kann ich irgendwie prüfen ob ein wert bereits exisitert oder nicht existiert, und wenn nicht dann einen neuen erstellen?

Pseudemys Nelsoni 23. Jul 2003 12:23

Re: TRegistry (wert schreiben)
 
hab schon danke

Trike 27. Jul 2003 18:58

Re: TRegistry (wert schreiben)
 
Hallo ihr da draußen *g*

Ich habe ein ähnliches Problem, wie das oben im Thread beschrieben. Habe mich mit meinen simplen Grundkenntnissen durch die Hilfe geackert und versucht, eine neue Zeichenfolge zu erstellen. Das ging noch, auch einen Binärwert habe ich hingebracht. Aber einen DWORD-Eintrag, den ich leider im Gegensatz zu den anderen beiden, brauche, will mir Delphi nicht gewähren. Probiert habe ich schon "createRegKey", das war aber völlig falsch *g* Von einem Freund habe ich mir sogar eine Funktion schreiben lassen, um den Hex-Wert in Dezimal umzuwandeln, aber wie rufe ich DWORD auf bzw. ändere Einträge?

MfG

CalganX 27. Jul 2003 19:07

Re: TRegistry (wert schreiben)
 
DWORD ist eigentlich das gleiche, wie ein Integer. Daher sollte dir WriteInteger helfen.

Chris

Pseudemys Nelsoni 27. Jul 2003 19:54

Re: TRegistry (wert schreiben)
 
Zitat:

Und wieder kein try-finally. :(
stimmt! hab ich nun gemacht, danke :)

Trike 27. Jul 2003 22:25

Re: TRegistry (wert schreiben)
 
Bin leider noch nicht zum Ausprobieren gekommen, aber was bedeutet das "try" und "finally"?

Chewie 27. Jul 2003 22:28

Re: TRegistry (wert schreiben)
 
try heißt "versuchen", finally "ausführen, egal ob der Versuch erfolgreich war oder nicht". Das Praktische daran ist, dass die Anweisungen im finally-Block auch dann ausgeführt werden, wénn es im Try-Block zu einer Excepption kommt, die eigentlich die Ausführung des weiteren Codes verhindern würde. So kann man Speicherlecks verhindern.
Schau dir dazu auch mal die OH an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz