AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Probleme mit TStrings

Ein Thema von Thurgen · begonnen am 1. Okt 2002 · letzter Beitrag vom 1. Okt 2002
Antwort Antwort
Thurgen

Registriert seit: 11. Sep 2002
27 Beiträge
 
#1

Probleme mit TStrings

  Alt 1. Okt 2002, 09:23
Hi,

ich habe versucht mit der Registry procedure "GetKeyNames(Strings: TStrings);" einen Registry Baum in eine TStrings Variable einzulesen. Das Programm startet ohne Error aber sobalt die Zuweisung kommt bricht das Programm mit einem Speicher Zugriffs Fehler ab. Tausche ich die TString Varibale mit einem Memo Feld aus funktioniert es.

with TRegistry.create(KEY_READ) do
begin
Rootkey:=HKEY_LOCAL_MACHINE;
OpenKey('Enum\PCI', false);
getKeyNames(memo1.lines);
closekey;
free;
end;

Hat vieleicht jemand eine Idee wie ich das Programm mit TStrings zum laufen bekomme?
  Mit Zitat antworten Zitat
Daniel
(Administrator)

Registriert seit: 30. Mai 2002
Ort: Hamburg
14.606 Beiträge
 
Delphi 10.3 Rio
 
#2
  Alt 1. Okt 2002, 09:31
Hallo,
Zitat von Delphi-Hilfe:
TStrings contains abstract methods and should not be directly instantiated.
Benutze einfach die Klasse "TStringList".
Daniel R. Wolf
Admin Delphi-PRAXiS
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Thurgen

Registriert seit: 11. Sep 2002
27 Beiträge
 
#3
  Alt 1. Okt 2002, 09:39
Selber fehler mit TstringList

Im Projekt Regsearch.exe ist eine Execption der Klasse EAccesViolation Meldung: Zugriffsverletzung bei Adresse........
  Mit Zitat antworten Zitat
Daniel
(Administrator)

Registriert seit: 30. Mai 2002
Ort: Hamburg
14.606 Beiträge
 
Delphi 10.3 Rio
 
#4
  Alt 1. Okt 2002, 09:48
An welcher Stelle hast Du denn die TStringList instanziiert? Folgendes Beispiel funktioniert bei mir (ichhabe lediglich den Pfad abgeändert, da er bei mir unter Windows XP nicht existierte).
Code:
procedure TForm1.Button1Click(Sender: TObject);
var someLines : TStringList;
begin

  [b]someLines:= TStringList.Create;[/b]

  with TRegistry.create(KEY_READ) do
  begin
    Rootkey:=HKEY_LOCAL_MACHINE;
    OpenKey('Software', false);
    getKeyNames(someLines);
    closekey;
    free;
  end;

  // Nun einfach in einem Memo anzeigen
  Memo1.Lines.Assign(someLines);

  [b]someLines.Free;[/b]
end;
Daniel R. Wolf
Admin Delphi-PRAXiS
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Thurgen

Registriert seit: 11. Sep 2002
27 Beiträge
 
#5
  Alt 1. Okt 2002, 09:57
Danke,

Tstringlist.create;

wars gewesen was gefehlt hat, jetzt läufts
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.188 Beiträge
 
Delphi 2006 Professional
 
#6
  Alt 1. Okt 2002, 10:04
Fehlerbehandlung fehlt komplett

Code:
procedure TForm1.Button1Click(Sender: TObject);
var someLines : TStringList;
begin

  someLines:= TStringList.Create;
  [b]try[/b]
    with TRegistry.create(KEY_READ) do
    begin
      [b]try[/b]
        Rootkey:=HKEY_LOCAL_MACHINE;
        OpenKey('Software', false);
        getKeyNames(someLines);
        closekey;
      [b]finally[/b]
        free;
      [b]end;[/b]
    end;

    Memo1.Lines.Assign(someLines);
  [b]finally[/b]
    someLines.Free;
  [b]end;[/b]
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.482 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7
  Alt 1. Okt 2002, 11:02
Zitat von Luckie:
Fehlerbehandlung fehlt komplett

Code:
procedure TForm1.Button1Click(Sender: TObject);
var someLines : TStringList;
begin

  someLines:= TStringList.Create;
  [b]try[/b]
    with TRegistry.create(KEY_READ) do
    [color=#ff0022]begin[/color]
      [b]try[/b]
        Rootkey:=HKEY_LOCAL_MACHINE;
        OpenKey('Software', false);
        getKeyNames(someLines);
        closekey;
      [b]finally[/b]
        free;
      [b]end; [/b]
[color=#ff0000]   end;[/color]

    Memo1.Lines.Assign(someLines);
  [b]finally[/b]
    someLines.Free;
  [b]end;[/b]
end;
Hi Luckie, die roten Zeilen kannst Du Dir sparen
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Thurgen

Registriert seit: 11. Sep 2002
27 Beiträge
 
#8
  Alt 1. Okt 2002, 11:05
lol
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.188 Beiträge
 
Delphi 2006 Professional
 
#9
  Alt 1. Okt 2002, 11:06
Die Zeilen, die du rot gemacht hast, stammen nicht von mir. Ich habe nur die Fehlerbehandlung in vorhandenen Code einegebaut.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf