Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Registry Problem (https://www.delphipraxis.net/90340-registry-problem.html)

Mark90 15. Apr 2007 16:57


Registry Problem
 
Hallo,

ich habe ein Problem. auf meiner Form befindet sich ein trackbar. Wenn ich diesen bewege wird der wert in die registry geschrieben.
Delphi-Quellcode:
 try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('Software\Prog1', True);
    reg.WriteInteger('Alphawert', pos);//pos = trackbar.position
  finally
    reg.Free;
  end;
wenn ich die form schließe will ich den genauen wert wieder laden und den Trackbar auf die gewünschte position bringen

Delphi-Quellcode:
 try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('Software\Prog1', True);
    pos := reg.ReadInteger('Alphawert');
  finally
    reg.Free;
  end;
  trackbar.Position := pos;
Es funktioniert aber nicht. Es kommt eine Fehlermeldung und das projekt kann nicht erzeugt werden.

Matze 15. Apr 2007 17:02

Re: Registry Problem
 
Welche Meldung kommt denn?

Hast du reg auch erzeugt:

Delphi-Quellcode:
reg := TRegistry.Create;

Mark90 15. Apr 2007 17:05

Re: Registry Problem
 
Zitat:

Zitat von Matze
Welche Meldung kommt denn?

Hast du reg auch erzeugt:

Delphi-Quellcode:
reg := TRegistry.Create;

ja ich habs erzeugt. Die genaue fehlermeldung ist eine Zugriffsverletztung.

P.s. die funktion reg.readinteger() rufe ich am anfang auf.

Matze 15. Apr 2007 17:33

Re: Registry Problem
 
Also sonst kann ich keinen Fehler erkennen, außer dass du nach dem Auslesen/Schreiben jeweils ein Delphi-Referenz durchsuchenCloseKey aufrufen solltest, was dein Problem jedoch auch nicht beheben wird.

Mark90 15. Apr 2007 17:42

Re: Registry Problem
 
Zitat:

Zitat von Matze
Also sonst kann ich keinen Fehler erkennen, außer dass du nach dem Auslesen/Schreiben jeweils ein Delphi-Referenz durchsuchenCloseKey aufrufen solltest, was dein Problem jedoch auch nicht beheben wird.

hi matze

vielleicht könntet ihr das mal bei euch probieren

danke

Christian Seehase 15. Apr 2007 17:44

Re: Registry Problem
 
Moin Mark,

Zitat:

Zitat von Mark90
Es kommt eine Fehlermeldung und das projekt kann nicht erzeugt werden.

was i.d.R. nur dann gemeldet wird, wenn man Compiliert, und die Exe schon läuft.

Du hast nicht zufälliger Weise zweimal Delphi auf, jeweils mit nicht gespeichertem Projekt?

Mark90 15. Apr 2007 18:25

Re: Registry Problem
 
Zitat:

Zitat von Christian Seehase
Moin Mark,

Zitat:

Zitat von Mark90
Es kommt eine Fehlermeldung und das projekt kann nicht erzeugt werden.

was i.d.R. nur dann gemeldet wird, wenn man Compiliert, und die Exe schon läuft.

Du hast nicht zufälliger Weise zweimal Delphi auf, jeweils mit nicht gespeichertem Projekt?

Nein leider nicht

Mark90 15. Apr 2007 19:06

Re: Registry Problem
 
Hier hab ich nochmals meinen gesamten Quellcode!

Delphi-Quellcode:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, registry, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    TrackBar1: TTrackBar;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    pos: integer;
    reg: Tregistry;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(inttostr(pos));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('Software\CrkT', True);
    pos := reg.ReadInteger('Alphawert');
  finally
    reg.Free;
  end;

end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Pos := trackbar1.Position;
  Form1.AlphaBlendValue := pos;
  reg := Tregistry.Create;
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('Software\CrkT', True);
    reg.WriteInteger('Alphawert', pos);
  finally
    reg.Free;
  end;
end;

end.

Hawkeye219 15. Apr 2007 19:10

Re: Registry Problem
 
Hallo,

erinnerst du dich an die Frage von Matze in Beitrag #2?
Dan schaue dir noch einmal genau die Methode TForm1.FormCreate an...

Gruß Hawkeye

Luckie 15. Apr 2007 21:33

Re: Registry Problem
 
Zitat:

Zitat von Mark90
Wenn ich diesen bewege wird der wert in die registry geschrieben.
Delphi-Quellcode:
 try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('Software\Prog1', True);
    reg.WriteInteger('Alphawert', pos);//pos = trackbar.position
  finally
    reg.Free;
  end;

Und mit welcher Begründung schreibst du in HKLM? Bedenke, dass in diesen Schlüssel nur Administratoren schreiben dürfen. Und das mit Recht, da dort benutzerübergreifende Systemeinstellunge gemacht werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 Uhr.
Seite 1 von 2  1 2      

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