Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zugriffsverletzung TStringList (https://www.delphipraxis.net/134535-zugriffsverletzung-tstringlist.html)

bigmatze 24. Mai 2009 12:24


Zugriffsverletzung TStringList
 
Hallo!

Ich war mir nicht sicher in welches SubForum ich das hier posten sollte, also wenns flasch ist bitte nicht schimpfen und verschieben^^

Ich hab folgendes Problem bei diesem Code:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  k: tstringlist;
  ini: Tinifile;
  pfad: string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ini.readsection('Pfad',k);
  Pfad := k[1];
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'Pfad.ini');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ini.Free;
end;

end.
Ich hab in das Verzeichnis von demprojekt eine Pfad.ini datei gelegt, die aus diesen 2 Zeilen besteht:

[Pfad]
c:\xyz\qod\irgendwas.exe=1

Ich bekomme keinen Fehler wenn ich das ganze kompiliere, aber wenn ich dann auf den Button klicke, der das ganze Auslösen soll, bekomme ich eine Zugriffsverletzung-Fehlermeldung...
Woran könnte das liegen?^^

Danke schonmal im Voraus!

Meflin 24. Mai 2009 12:26

Re: Zugriffsverletzung TStringList
 
Vermutlich, weil du k nie erzeugst.

bigmatze 24. Mai 2009 12:27

Re: Zugriffsverletzung TStringList
 
Uh das ging aber schnell^^

ach natüüüürlich :D^^ ichs chau mal obs so geht^^

danke^^ ;D

oh man im nachhinein ist die Antwort sooo logisch xD

EDIT: danke schonmal! ich hab es jetzt so abgeändert:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  k: tstringlist;
  ini: Tinifile;
  pfad: string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ini.readsection('Pfad',k);
  Pfad := k[1];
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'Pfad.ini');
  k.Create;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ini.Free;
  k.Free;
end;

end.
und jetzt bekomme ich beim kompilieren einen Zugriffsverletzungsfehler^^ woran könnte das jetzt liegen?^^

Muetze1 24. Mai 2009 12:38

Re: Zugriffsverletzung TStringList
 
Schau dir mal den Create Aufruf vom TIniFile an und vergleiche es mit deinem Create Aufruf von deiner TStringList.

bigmatze 24. Mai 2009 12:48

Re: Zugriffsverletzung TStringList
 
:wall: Achso^^

VIELEN DANK AN EUCH BEIDE :D:D:D

Luckie 24. Mai 2009 14:33

Re: Zugriffsverletzung TStringList
 
Und wozu die ganzen globalen Variablen?


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