Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Registry (https://www.delphipraxis.net/5559-delphi-registry.html)

Nise 11. Jun 2003 09:49


Delphi Registry
 
Hallo alle zusammen!

Habe ein kleines Problem mit der Registry und das lautet wie folgt:

Ich habe diese Prozedur und möchte sie mit in die Registry einbauen. Das heißt wenn ich auf checked clicke möchte ich das es beim neu starten des Programmes wieder gecheckt ist und das selbe mit der Suchfunktion und dem Label.
Delphi-Quellcode:
procedure TFmHaupt.WarengruppenSuchenExecute(Sender: TObject);
begin
   case TComponent(Sender).Tag of

    3303: begin
          WaGrWGNr.Checked := true;
          WaGrBezeichnung.Checked := false;
          WarSU1.Text := '';
          Label3.Caption := 'Warengruppen Nr.';
          WarSU1.Visible := True;
          WarSU1.OnChange := WarSU1Change;
          end;
    3304: begin
          WaGrWgNr.Checked := false;
          WaGrBezeichnung.Checked := true;
          WarSU1.Text := '';
          Label3.Caption := 'Bezeichnung';
          WarSU1.Visible := True;
          WarSU1.OnChange := WarSU2Change;
          end;
end;
end;
Ich habe es schon so probiert an die Registry abzuspeichern.
Delphi-Quellcode:
// yy Registry auslesen
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\ZVVerwaltung\DialogPosition\FMHaupt', true);

  TComponent(Sender).Tag := regist.ReadInteger('Checked3016');

// yy Registry einlesen
procedure TFmHaupt.FmClose(Sender: TObject; var Action: TCloseAction);
var regist : TRegistry;
begin
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey('Software\ZVVerwaltung\DialogPosition\FMHaupt', true);

    regist.WriteInteger('checked3016', TComponent(Sender).Tag);
Ich habe es versucht über den TComponent(Sender) das funktioniert allesdiengs nicht! Kann mir jemand sagen ob ich überhaupt auf dem richtigen weg bin oder ob ich ganz falsch drann bin denn ich komme einfach nicht weiter!

Mfg und Danke im Vorraus

Denise
[EDIT=Luckie]Delphi-tags hinzugefügt. Beim nächsten Mal bitte selber machen. Danke.[/EDIT]

Christian Seehase 11. Jun 2003 09:55

Moin Denise,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Wodurch wird denn

WarengruppenSuchenExecute

aufgerufen?

Nise 11. Jun 2003 10:02

Execute
 
Hallo, Danke für die herzliche Begrüßung!

Ich habe einen normalen button mit dem habe ich ein Popup menü verbunden und von dort aus wird dieses Suchen mit den einzelnen Untermenüs aufgerufen. Ich habe jedem einzelnen Untermenü einen ander Tag zu geordnet und mit diesem Tag steuere ich das jeweilige Suchen usw. an. Ich hoffe das hilft dir einiger maßen weiter.

Mfg und Danke im Vorraus

Denise

Christian Seehase 11. Jun 2003 10:59

Moin Denise,

wenn also jedem Menüpunkt WarengruppenSuchenExecute zugeordnet ist, und jeder Menüpunkt (bzw. die Action, sieht für mich zumindest nach Verwendung von TActionList aus) über sein eigenes Tag verfügt, sollte das gehen.

Du kannst ja mal als erste Zeile in der Methode ein ShowMessage legen, dass Dir den Wert des jeweiligen Tags anzeigt, um zu sehen, dass das überhaupt funktioniert.

BTW:
Bei Deinen Registryfunktionen hast Du doch auch immer ein CloseKey?
Ausserdem wäre ein try/finally Block nicht schlecht um die Ausführung von CloseKey sicherzustellen.

[EDIT]
Ist mir gerade aufgefallen :oops:
Beim Schreiben in die Registry verwendest Du ja auch TComponent(Sender).Tag
Der Wert dürfte allerdings immer 0 sein, ausser Du rufst fmClose mit geeigneten Parametern "manuell" auf
[/EDIT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 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