Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Datei wird nicht in combobox geladen (https://www.delphipraxis.net/88933-datei-wird-nicht-combobox-geladen.html)

moperswings 23. Mär 2007 08:50


Datei wird nicht in combobox geladen
 
Hallo,

in einer comboBox1 lade ich eine Tierliste.ini mit den Items Hund, Vogel und Katze.
Wenn ich einen Item mit
Delphi-Quellcode:
case ComboBox1.Itemindex of
1: begin ComboBox2.Items.Loadfromfile('hund.ini'); end;
2: begin ComboBox2.Items.Loadfromfile('vogel.ini'); end;
3: begin ComboBox2.Items.Loadfromfile('katze.ini'); end;
end;
anklicke, werden z.B. bei hund.ini Dackel und Schäferhund angezeigt.
ItemIndex 1 und 2 machen das, beim dritten Item bleibt ComboBox2 leer.
Kann mir jemand sagen, warum jeweils der 3. ItemIndex nicht geladen wird?

Mit vielen Grüssen, moperswings

mkinzler 23. Mär 2007 08:56

Re: Datei wird nicht in combobox geladen
 
Ohne den Aufbau der Inis zu kenne, kann man dir schlecht Helfen.

SirThornberry 23. Mär 2007 08:57

Re: Datei wird nicht in combobox geladen
 
bist du dir sicher das du genau das gepostet hast was du verwendest?
Combobox1.Items auf eine Zahl zu prüfen macht wenig sinn da es ein Object ist und bei jedem Laden eine andere Speicheradresse haben wird/kann da dynamich dafür speicher angefordert wird.

Hawkeye219 23. Mär 2007 08:59

Re: Datei wird nicht in combobox geladen
 
Hi,

Zitat:

Delphi-Quellcode:
case ComboBox1.Items of

Du meinst wahrscheinlich ComboBox1.ItemIndex, und der Wert dieser Eigenschaft ist 0-basiert.

Gruß Hawkeye

RavenIV 23. Mär 2007 08:59

Re: Datei wird nicht in combobox geladen
 
Auf die Schnelle fällt mir dieses ein:
Der Itemindex der Combobox fängt bei 0 an.
Dein case läuft aber von 1 - 3.

/edit: sche****, schon wieder zu langsam...

moperswings 23. Mär 2007 09:06

Re: Datei wird nicht in combobox geladen
 
@hawkey -> hab ich schon gemerkt und verbessert. Du warst nur schneller.

In den Inis stehen einfach nur 3 Namen z.B. vogel.ini Adler, Möwe, Spatz.
Ich habe jeweils jedes Tier an die 3. Position gesetzt und der Fehler bleibt!

RavenIV 23. Mär 2007 09:09

Re: Datei wird nicht in combobox geladen
 
Zitat:

Zitat von moperswings
@hawkey -> hab ich schon gemerkt und verbessert. Du warst nur schneller.

In den Inis stehen einfach nur 3 Namen z.B. vogel.ini Adler, Möwe, Spatz.
Ich habe jeweils jedes Tier an die 3. Position gesetzt und der Fehler bleibt!

Zeig doch mal den *geänderten* Code.

moperswings 23. Mär 2007 09:11

Re: Datei wird nicht in combobox geladen
 
Die Items der zweiten Combobox beginnen jetzt bei -1,0,1
Der letzte wird immer noch nicht gelesen!
Daran liegt es nicht!

moperswings 23. Mär 2007 09:13

Re: Datei wird nicht in combobox geladen
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
        ComboBox1.Items.LoadFromFile('liste.ini');
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
        case ComboBox1.ItemIndex of
        -1: begin Combobox2.Items.LoadFromFile('katze.ini'); end;
        0: begin Combobox2.Items.LoadFromFile('hund.ini'); end;
        1: begin Combobox2.Items.LoadFromFile('vogel.ini'); end;
        end;
end;
Ich sehe gerade: Kann es daran liegen, dass der code unter combobox1change läuft?

RavenIV 23. Mär 2007 09:22

Re: Datei wird nicht in combobox geladen
 
was soll das "-1" dort?

0 : ... Katze.ini
1 : ... Hund.ini
2 : ... Vogel.ini

Versuch das mal so und melde Dich wieder.

IngoD7 23. Mär 2007 09:23

Re: Datei wird nicht in combobox geladen
 
Zitat:

Zitat von moperswings
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
        ComboBox1.Items.LoadFromFile('liste.ini');
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
        case ComboBox1.ItemIndex of
        -1: begin Combobox2.Items.LoadFromFile('katze.ini'); end;
        0: begin Combobox2.Items.LoadFromFile('hund.ini'); end;
        1: begin Combobox2.Items.LoadFromFile('vogel.ini'); end;
        end;
end;
Ich sehe gerade: Kann es daran liegen, dass der code unter combobox1change läuft?

Du musst dir jetzt mal klar darüber werden, was ItemIndex genau ist. :cyclops:

Im Moment wird Katze geladen, wenn gar nichts selektiert ist, Hund wird geladen, wenn der erste Eintrag der ComboBox1 selektiert ist und Vogel beim zweiten Eintrag.

Das hast du so bestimmt nicht geplant.

moperswings 23. Mär 2007 09:36

Re: Datei wird nicht in combobox geladen
 
Mit 0 muss ich anfangen.
Ich habe in den comboboxen den Itemindex auf 0 gesetzt und habe deshalb bei 1 anfangen.

Danke, RavenIV

Vielen Dank an ALLE, manchmal sieht man´s einfach nicht!

Viele Grüsse, moperswings

Hawkeye219 23. Mär 2007 09:53

Re: Datei wird nicht in combobox geladen
 
Noch eine Anmerkung:

Zitat:

Delphi-Quellcode:
ComboBox2.Items.Loadfromfile('hund.ini');

Der Verzeicht auf eine Pfadanagabe ist nicht klug, weil das aktuelle Verzeichnis jederzeit (z.B. durch einen Dateiauswahldialog) verstellt werden kann. Du solltest hier den Pfad zur Applikation oder den eines Anwender-Datenverzeichnisses verwenden.

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz