Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Einträge aus Ini in ComboBox laden. (https://www.delphipraxis.net/71941-eintraege-aus-ini-combobox-laden.html)

TurboMartin 22. Jun 2006 17:36


Einträge aus Ini in ComboBox laden.
 
Ich habe das Problem, das mein Programm nur mit einer Windows-Meldung beendet wird:
Code:
***.exe verursachte einen Fehler durch eine ungültige Seite
in Modul USER.EXE bei 0004:00006001.
Register:
EAX=00000001 CS=17af EIP=00006001 EFLGS=00000247
EBX=00057f7e SS=4687 ESP=00007f7a EBP=00697f92
ECX=17370000 DS=220e ESI=00020005 FS=0167
EDX=83f816bf ES=236f EDI=00000000 GS=0000
Bytes bei CS:EIP:
a4 8e da 5f 5e ca 0a 00 55 8b ec 56 1e c5 76 08 
Stapelwerte:
0000040a 176f1050 00000001 0005236f 6f60220e 220e0005 0a257fe8 236f0000 00000003 46875e9c 00026f60 4687040a 00026f60 efdc0409 f32c0069 efdc0069
Diese kommt, da ich Strings aus einem Ini-File in einer ComboBox anzeigen will. Dabei sehe ich dann vier Zeilen, die man auch aussuchen kann, wobei dann dieser Fehler kommt. Außerdem sind diese Einträge ohne Schrift.
Mein Code:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Ini: TIniFile;
  i: Integer;
begin
  Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
  for i := 1 to Ini.ReadInteger('kategorie', 'anzahl', 0) do
  begin
    ComboBox1.Items.Add(Ini.ReadString('kategorie', String(i), String(i)));
  end;
end;
Ini-File:
Code:
[kategorie]
anzahl=4
1=001
2=002
3=003
4=004
Warum erhalte ich auch keine Antwort vom Debugger

xZise 22. Jun 2006 17:39

Re: Einträge aus Ini in ComboBox laden.
 
Du gibst die INI ja nicht wieder frei ?!

Zitat:

Zitat von TurboMartin
Delphi-Quellcode:
{...}String(i)

Diese Funktion gibts?

TurboMartin 22. Jun 2006 17:43

Re: Einträge aus Ini in ComboBox laden.
 
Zitat:

Zitat von xZise
[..]

Zitat:

Zitat von TurboMartin
Delphi-Quellcode:
{...}String(i)

Diese Funktion gibts?

Also bei mir funktionierte die bisher immer. :mrgreen:

[edit]Ini.Free bringt nichts. Und die Einträge haben immer noch keine Beschriftung. :? [/edit]

Hawkeye219 22. Jun 2006 17:49

Re: Einträge aus Ini in ComboBox laden.
 
Nicht alles, was der Compiler übersetzt, funktioniert auch wirklich!

Deshalb besser so:

Delphi-Quellcode:
IntToStr(i)
Gruß Hawkeye

Martin K 22. Jun 2006 17:52

Re: Einträge aus Ini in ComboBox laden.
 
ALso ich würde mal sagen, so müsste es heißen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Ini: TIniFile;
  i: Integer;
begin
  Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
  try
    for i := 1 to Ini.ReadInteger('kategorie', 'anzahl', 0) do
    begin
      ComboBox1.Items.Add(Ini.ReadString('kategorie', IntToStr(i), IntToStr(i))); //<--- IntToStr
    end;
  finally
    Ini.Free; //<-- Objekt freigeben mit Resourcen-Schutzblock
  end;
end;


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