AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Registry-Anfänger-Probleme

Ein Thema von flomei · begonnen am 12. Jul 2003 · letzter Beitrag vom 14. Jul 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#1

Registry-Anfänger-Probleme

  Alt 12. Jul 2003, 22:03
@ all!
Hab grade mal versucht Registrierungsschlüssel zu speichern. Ich hab hier in meinem Delphi-Buch so ein bisschen gelesen und wollte das so machen:
Delphi-Quellcode:
procedure TMainForm.SaveSettings(Sender: TObject;
  var Action: TCloseAction);
  begin
    if
      CBxSaveSettings.Checked
    then
      begin
        regist := TRegistry.Create;
        regist.RootKey := HKEY_LOCAL_MACHINE;
        regist.CreateKey('.flomei\pumpensteuerung\1.0');
        regist.WriteInteger('Filled', Counter.Value);
        regist.WriteBool('OnTop an', OnTopChecked);
        regist.WriteBool('SaveSettings an', SaveSettingsChecked);
        regist.CloseKey;
      end
end;
Ich glaub das klappt so nicht.
Wo sind denn da evtl. Fehler? Er schreibt nämlich keinen Eintrag. Oder sollte man das an einen anderen Ort speichern?

Dank im Vorraus!

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Registry-Anfänger-Probleme

  Alt 12. Jul 2003, 22:11
Auf jeden Fall woanders. Unter NT-Systemen gibt es Sicherheitsaspekte - also in HKCU und dann immer unter Software.

Code:
procedure TMainForm.SaveSettings(Sender: TObject;
  var Action: TCloseAction);
  begin
    if
      CBxSaveSettings.Checked
    then
      begin
        regist := TRegistry.Create;
        [color=#ff0000]try[/color]
          regist.RootKey := [color=#ff0000]HKEY_CURRENT_USER[/color];
          [color=#ff0000]if[/color] regist.[color=#ff0000]OpenKey[/color]('[color=#ff0000]Software\[/color]flomei\pumpensteuerung\1.0') [color=#ff0000]then
          try[/color]
            regist.WriteInteger('Filled', Counter.Value);
            regist.WriteBool('OnTop an', OnTopChecked);
            regist.WriteBool('SaveSettings an', SaveSettingsChecked);
            regist.CloseKey;
          [color=#ff0000]finally
            regist.CloseKey;
          end;
        finally
          regist.Free;
        end;[/color]
      end
end;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Registry-Anfänger-Probleme

  Alt 12. Jul 2003, 22:33
Geht irgendwie aber trotzdem noch nicht. Ich hab den Code mal so ausprobiert und er schreibt keinen Eintrag. Woran kann das liegen?

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Registry-Anfänger-Probleme

  Alt 13. Jul 2003, 00:55
Moin Florian,

noch eine kleine Ergänzung:

Code:
if regist.OpenKey('Software\flomei\pumpensteuerung\1.0',[color=red]true[/color]) then
true als zweiten Parameter, da der Key sonst nicht angelegt wird.

Ansonsten geh' doch mal im Einzelschritt durch die Routine, damit Du siehst, ob die Write Zeilen überhaupt erreicht werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Registry-Anfänger-Probleme

  Alt 13. Jul 2003, 07:46
Zitat von Christian Seehase:
true als zweiten Parameter, da der Key sonst nicht angelegt wird.
Es war schon zu spät... den habe ich doch glatt vergesssen, sorry.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#6

Re: Registry-Anfänger-Probleme

  Alt 13. Jul 2003, 08:46
Ist nicht so schlimm, als Ersatz hast Du dafür doch ein CloseKey zu viel
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Registry-Anfänger-Probleme

  Alt 13. Jul 2003, 09:39
Zitat von Tom:
Ist nicht so schlimm, als Ersatz hast Du dafür doch ein CloseKey zu viel


......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#8

Re: Registry-Anfänger-Probleme

  Alt 13. Jul 2003, 09:49
Als Ergänzung zu sakuras Version:

-------
if Assigned(regist) then
try
-------

Statt des ersten "try" einfügen. So wird auch nur dann fortgefahren, wenn die Instanz erfolgreich erstellt wird. Logischerwiese sollten solche IFs am Ende immer noch ein ELSE haben, damit eine Fehlermeldung ausgegeben wird.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Registry-Anfänger-Probleme

  Alt 13. Jul 2003, 10:01
Zitat von Assarbad:
-------
if Assigned(regist) then
try
-------
Dann aber
Delphi-Quellcode:
if regist <> nil then
try
Borland empfiehlt von der Nutzung von Assigned abzusehen, sofern möglich, da dieser Aufruf um weites langsamer ist als ein direkter Vergleich mit nil.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#10

Re: Registry-Anfänger-Probleme

  Alt 13. Jul 2003, 10:05
Okay ... das ist logisch. Aber die Cleverlinge bei Borland könnten ja einfach mal den Compiler so umstellen, daß er "Assigned(bla)" zu "bla<>nil" statt einem Funktionsaufruf von Assigned() umwandelt.

Ich persönlich habe früher auch immer "bla<>nil" benutzt, lasse aber davon ab, da "Assigned()" für mich übersichtlicher ist. Aber definitiv hast du recht, denn selbst wenn Assigned eine sehr simple Funktion ist, muß zuerst der Parameter gepusht werden ... selbst wenn er danach ja in EAX steckt ... also nicht nochmal wieder woanders hin muß

Also, hast recht
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz