AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Combobox aus *.ini laden

Ein Thema von volvox · begonnen am 4. Mär 2013 · letzter Beitrag vom 4. Mär 2013
 
volvox

Registriert seit: 17. Jan 2006
8 Beiträge
 
Delphi 7 Professional
 
#1

Combobox aus *.ini laden

  Alt 4. Mär 2013, 18:25
Hallo zusammen,

ich möchte gerne den Inhalt einer Combobox in einer INI-Datei speichern und wieder laden.
Im Gegensatz zu den meisten anderen Themen hier im Forum, möchte ich alle Werte der Combobox speichern und laden.
Da der Nutzer den Inhalt der Combobox nach Bedarf ändern kann, weiß ich nie wie viele Items in derCombobox sind.


So schreibe ich in die Ini. Das klappt auch.
Delphi-Quellcode:
for i:=0 to (cbbOE.items.count -1) do // Inhalt der Combobox in Ini schreiben
   begin
     with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do
       begin
         WriteString('Organisationseinheit', IntToStr(i), cbbOE.items[i]);
         Free;
       end;
   end;

Beim Lesen der Ini und Beschreiben der Combobox habe ich jetzt das Problem, dass ich nicht weiß wie viele Items die Combobox haben wird.
Wenn ich die Combobox standardmaäßg leer lasse, und einfach mit der Ini beschreibe, kommt eine Fehlermeldung, sinngemäß 'Maximale Anzahl an Items überschritten' und das Programm stürzt ab.

Meine Momentane, nicht sehr elegante Lösung sieht so aus:

Delphi-Quellcode:
for i:=0 to 99 do //
   begin
     with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do
       begin
         cbbOE.items[i]:=ReadString('Organisationseinheit', IntToStr(i),'');
         Free;
       end;
   end;
Ich erzeuge mit also 100 freie Item-Plätze und beschreibe diese dann mit der Ini. Da ich aber in der Regel nur 10-30 Plätze benötige, habe ich jede Menge leere Felder in der Combobox.

Wie kann ich das eleganter lösen.

Notfalls hatte ich mit überlegt über die for schleife nach leeren Feldern zu suchen und diese dann wieder zu löschen. Gefällt mir nicht und hat programmiertechnisch nicht geklappt.

Sowas wie if cbbOE.items[i]='then cbbOE.Items[i].Delete; ging natürlich nicht.

Jetzt nochmal die Frage:
Wie kann ich die Combo beschreiben ohne die maximale Anzahl der Items zu überschreiten und ohne leere Felder zu haben?


Danke im Vorraus!
  Mit Zitat antworten Zitat
 


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 19:24 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