![]() |
TRegistry
Hi Leutz,
mit folgenden Code schreibe ich daten aus einen JvDirectoryedit und 3 edits in die registry:
Delphi-Quellcode:
Wie kann ich jetzt die eingetragenen Strings von der registry holen lassen und Sie gleich ins richtige Edit einfügen?? Mit Readstring müsste das gehen, hasb aber net geschafft. Kann mir bitte gleich einer den Code geben?
procedure Tconfig.Button2Click(Sender: TObject);
var Reg : TRegistry; a:Boolean; begin Reg:=TRegistry.Create; Reg.Rootkey:=HKEY_CURRENT_USER; a:= Reg.createkey('\MySQL_Tool'); if Reg.Openkey('\MySQL_Tool',False) then begin Reg.WriteString('','MySQL_Tool'); end; a:= Reg.createkey('\MySQL_Tool'+'\mysqlbinpath'); if Reg.Openkey('\MySQL_Tool'+'\mysqlbinpath',False) then Reg.WriteString('',(JvDirectoryedit1.text)); a:= Reg.createkey('\MySQL_Tool'+'\mysqlhost'); if Reg.Openkey('\MySQL_Tool'+'\mysqlhost',False) then Reg.WriteString('',(edit1.text)); a:= Reg.createkey('\MySQL_Tool'+'\mysqlusername'); if Reg.Openkey('\MySQL_Tool'+'\mysqlusername',False) then Reg.WriteString('',(edit2.text)); a:= Reg.createkey('\MySQL_Tool'+'\mysqlpassword'); if Reg.Openkey('\MySQL_Tool'+'\mysqlpassword',False) then Reg.WriteString('',(edit3.text)); Reg.Free; end; thx |
Re: TRegistry
Ich bin jetzt soweit gekommen:
Delphi-Quellcode:
Dann ist mir aufgefallen das ja der Wert, der geshcrieben wird imer anders ist (wird vom user eingegebn). Jetzt muss ich irgednwie rausfinden, wie der wert ehißt. Ich kenen ihn ja noch nicht. Wie mache ich das?
Reg:=TRegistry.Create;
Reg.Rootkey:=HKEY_CURRENT_USER; Reg.Openkey('\MySQL_Tool',False); a:= Reg.openkey('\MySQL_Tool'+'\mysqlbinpath',false); if Reg.Openkey('\MySQL_Tool'+'\mysqlbinpath',False) then config.JvDirectoryEdit1.Text := Reg.readString('mysqlpath'); a:= Reg.openkey('\MySQL_Tool'+'\mysqlhost',false); if Reg.Openkey('\MySQL_Tool'+'\mysqlhost',False) then config.Edit1.Text := Reg.readString('mysqlhost'); a:= Reg.openkey('\MySQL_Tool'+'\mysqlusername',false); if Reg.Openkey('\MySQL_Tool'+'\mysqlusername',False) then config.edit2.Text := Reg.readString('mysqlusername'); a:= Reg.openkey('\MySQL_Tool'+'\mysqlpassword',false); if Reg.Openkey('\MySQL_Tool'+'\mysqlpassword',False) then config.edit3.Text := Reg.readString('mysqlpassword'); Reg.Free; |
Re: TRegistry
Du liest einfach die Werte des Schlüssels ein. Dann hast du doch den Wert den der Benutzer eingegeben hat oder hab ich dein Anliegen falsch verstanden?
MfG Florian :hi: |
Re: TRegistry
Also, es ist so. Zuerst werden die Texte der Edits in die Registry geschrieben. Jeder Benutzer gibt ja andere ein. Beim start des Porggis soll dann überprüft werden ob shcon einstellungen gemacht wurden, wenn ja soll er diese Werte in die Edits einfügen ansonsten eine Meldung anzeigen. Mein Problem ist, dass ich ja nicht weiß, wie die Werte heißen die der benutzer eingetragen hat.
So siehts in der Registry aus: HKEY_CURRENT_USER MySQL_Tool mysqlpath <--Standard Eigenschaft mit Wert mysqlhost <--Standard Eigenschaft mit Wert mysqluser <--Standard Eigenschaft mit Wert mysqlpassword <--Standard Eigenschaft mit Wert Muss ich vieleicht was anderes auser readString verwenden? |
Re: TRegistry
Moin onlinehome,
so unmittelbar kann ich Dein Problem nicht nachvollziehen. Das was der User eingegeben hat steht doch im Standardwert des Keys, den Du ja auslesen kannst. Das hier wäre also zum Beispiel schon einmal falsch
Delphi-Quellcode:
es müsste doch
if Reg.Openkey('\MySQL_Tool'+'\mysqlbinpath',False) then
config.JvDirectoryEdit1.Text := Reg.readString('mysqlpath');
Delphi-Quellcode:
weil Du die Daten ja in den Standardwert des Keys schreibst, musst Du sie natürlich auch wieder aus diesem auslesen.
if Reg.Openkey('\MySQL_Tool'+'\mysqlbinpath',False) then
config.JvDirectoryEdit1.Text := Reg.readString(''); Ausserdem fehlen noch die Resourcenschutzblöcke. Vielleicht besser Du schreibst es so, zumal mir absolut nicht klar ist, was Du mit Deiner Zuweisung an a willst:
Delphi-Quellcode:
Noch einfacher ginge es, wenn Du die Werte nicht im Standardwert eines Keys speichern würdest, sondern das, was Du jetzt als Keynamen nimmst, als Valuenamen benutzt:
Reg:=TRegistry.Create;
try Reg.Rootkey:=HKEY_CURRENT_USER; if Reg.Openkey('\MySQL_Tool'+'\mysqlbinpath',False) then try config.JvDirectoryEdit1.Text := Reg.readString(''); finally Reg.CloseKey; end; if Reg.Openkey('\MySQL_Tool'+'\mysqlhost',False) then try config.Edit1.Text := Reg.readString(''); finally Reg.CloseKey; end; //... finally Reg.Free; end;
Delphi-Quellcode:
Wenn Du dann noch diese Werte nicht direkt in die Funktionen schreibst, sondern Dir Konstanten dafür anlegst, verringerst Du auch die Gefahr von Vertippern.
Reg:=TRegistry.Create;
try Reg.Rootkey:=HKEY_CURRENT_USER; if Reg.Openkey('\MySQL_Tool',False) then try config.JvDirectoryEdit1.Text := Reg.readString('mysqlbinpath'); config.Edit1.Text := Reg.readString('mysqlhost'); finally Reg.CloseKey; end; //... finally Reg.Free; end; z.B.
Delphi-Quellcode:
Stehen die Konstanten global zur Verfügung kannst Du sie beim Schreiben und Lesen der Daten verwenden.
const
_sMySqlBinPath = 'mysqlbinpath'; _sMySqlHost = 'mysqlhost'; begin Reg:=TRegistry.Create; try Reg.Rootkey:=HKEY_CURRENT_USER; if Reg.Openkey('\MySQL_Tool',False) then try config.JvDirectoryEdit1.Text := Reg.readString(_sMySqlBinPath); config.Edit1.Text := Reg.readString(_sMySqlHost); finally Reg.CloseKey; end; //... finally Reg.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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