Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Combobox füllen mit Dateien aus Ordner


DiamondDog - Do 12.06.08 10:21
Titel: Combobox füllen mit Dateien aus Ordner
Hallo Leute,

hab da ein kleines Problem wo ich keine Lösung für gefunden habe und zwar würd ich gerne alle Datein (ini) aus einem Ordner auslesen und diese dann in einer Combobox anzeigen lassen. der Ordner liegt im selbern Ordner wie die *.dll

Kann mir da wohl jemand Helfen?

Danke schon mal.

Mfg Dog


ZeitGeist87 - Do 12.06.08 11:05

Hallo!

Suche in der Entwickler-Ecke FINDFIRST, Suche in der Entwickler-Ecke FINDCLOSE und Suche in der Entwickler-Ecke FINDNEXT sind für dich sehr hilfreich.

Beispiel


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var srec: TSearchRec;
begin
 //Combobox leeren
 combobox.items.clear;
 if Findfirst(<Pfad von *.dll??> + '*.INI', faAnyFile, srec) = 0 then
 begin
  REPEAT
   Combobox.items.add(srec.name);
  UNTIL FindNext(srec) <> 0;
 end;
 findclose(srec);
end;


LG
Stefan


Narses - Do 12.06.08 11:19

Moin!

@user profile iconZeitGeist87: Und was ist mit FindClose()? :| Wenn du schon mal wieder c&p-Code lieferst, dann doch bitte korrekten Code! :roll:

cu
Narses


ZeitGeist87 - Do 12.06.08 11:24

user profile iconNarses hat folgendes geschrieben:
Moin!

@user profile iconZeitGeist87: Und was ist mit FindClose()? :| Wenn du schon mal wieder c&p-Code lieferst, dann doch bitte korrekten Code! :roll:

cu
Narses


Schön, dass wenigstens einer mitdenkt ;-)

Schöner wäre es, wenn man die User erst Suchfunktion und die Delphihilfe benutzen würden - auch dann, wenn ihnen geholfen wird.


DiamondDog - Do 12.06.08 12:32

Also ich hab das jetzt so gemacht:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TfmBeeperOptions.ComboBox1Change(Sender: TObject);
var srec: TSearchRec;
begin
 if combobox1.ItemIndex=1 then ShowMessage('1');
 combobox1.items.clear;
 if Findfirst(ExtractFilePath(plug.FDllPath)+ 'Language/*.INI', faAnyFile, srec) = 0 then
 begin
  REPEAT
   Combobox1.items.add(srec.name);
  UNTIL FindNext(srec) <> 0;
 end;
 findclose(srec);
end;
hab da aber dann noch ein Problem und zwar muß ich wenn ich die Combobox anklicke immer dann noch ein mal auf Löschen (Pfeil nach links) klicken damit ich die ini Datein angezeigt bekommen. Wähle ich dann eine aus wird kurz auf ItemIndex 1 gesetzt und dann ist die Combobox wieder leer.

Ps: wenn ich auf Löschen klicke dann hat die Combobox den Index -1

Edit:
Hab auch mal versucht das ganze bei FormCreat reinzusetzen aber dann bekomme ich eine Zugriffsverletzung.

Edit:
Habs jetzt doch hinbekommen habs bei OnLoad eingefügt dann klappt das.