Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Registry: GetKeyName + Ausgabe in ListBox (https://www.delphipraxis.net/31194-registry-getkeyname-ausgabe-listbox.html)

Aike 5. Okt 2004 22:32


Registry: GetKeyName + Ausgabe in ListBox
 
Hallo Leute

Ich habe folgendes Programmierziel:
Aus einem Registry-Schlüssel sollen alle Keys ausgelesen werden und nacheinander in einer ListBox (lstbxCharaktere) ausgegeben werden.
Dazu habe ich dies programmiert:

Delphi-Quellcode:
var Charaktere:TStringList;
    i:integer;
    regist:TRegistry;
begin
  regist:=TRegistry.Create;
  regist.RootKey:=HKEY_CURRENT_USER;
  regist.OpenKey({Key wird geöffnet});
  try
    Charaktere:=TStringList.Create;
    regist.GetKeyNames(Charaktere);
  finally
    regist.free;
  end;

  for i:=0 to Charaktere.Count-1 do
  begin
    try
      lstbxCharaktere.Items.Add(Charaktere.Strings[i]);
    finally
      Charaktere.Free;
    end;
  end;
end;
Das Schöne ist: Wenn es nur einen Key gibt, funktioniert alles reibungslos. Ansonsten gibt es eine Exception (Zugriffsverletzung).
Ich habe hier und auch in anderen Foren keinen Beitrag dazu finden können :|

Vielen Dank im Voraus!

Aike 6. Okt 2004 09:21

Re: Registry: GetKeyName + Ausgabe in ListBox
 
Ich habe leider vergessen zu schreiben, dass, wenn ich für "lstbxCharaktere.Items.Add(Charaktere.Strings[i])" i=1 einsetze, es trotzdem funktioniert. Nur das Hinzufügen eines zweiten Strings führt zu der Exception.
btw. gibt 's hier keine Edit-Funktion?

MathiasSimmack 6. Okt 2004 09:38

Re: Registry: GetKeyName + Ausgabe in ListBox
 
Eine Edit-Funktion gibt es. Abgesehen davon kannst du gleich die Listbox angeben, da sie auch bloß TStrings benutzt. Soll heißen:
Delphi-Quellcode:
regist:=TRegistry.Create(KEY_READ);
try
  regist.RootKey:=HKEY_CURRENT_USER;
  if(regist.OpenKey('bla bla bla',false)) then
  try
    regist.GetKeyNames(lstbxCharaktere.Items);
  finally
    regist.CloseKey;
  end;
finally
  FreeAndNil(regist);
end;
müsste reichen.

Aike 6. Okt 2004 19:20

Re: Registry: GetKeyName + Ausgabe in ListBox
 
Danke, funktioniert.


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