Autor Beitrag
sexy_betty
Hält's aus hier
Beiträge: 10



BeitragVerfasst: So 19.11.06 18:24 
eine kleine frage. wie setze ich den Filter Index bei filtercomboboxen?
also wenn "textdateien" das dritte item ist, ich die combobox so setzen kann, dass er textdateien filtert.

mit filtercombobox.itemindex:=3; schlug ich fehl, da er so zwar "textdateien" angezeigt hat, der filter selbst in der filelistbox jedoch unverändert blieb! :(


Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 19.11.2006 um 22:39
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: So 19.11.06 23:18 
Hallo,
user profile iconsexy_betty hat folgendes geschrieben:
...
also wenn "textdateien" das dritte item ist
...
filtercombobox.itemindex:=3; schlug ich fehl...

das dritte Item hat den Index 2!
Der ItemIndex ist 0-basierend.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Mo 20.11.06 01:42 
Moin :-)

es gibt zwei Möglichkeiten, die Maske einer FileListBox auf den Filter einer FilterCombobox einzustellen:

1. Direkte 'Verknüpfung' zwischen FilterComboBox und FileListBox
ausblenden Delphi-Quelltext
1:
2:
3:
...
FilterComboBox1.FileList := FileList1;
...

Das kann schon im OI bei der FilterComboBox eingestellt werden ;-)
Das Ganze bewirkt eben das, was man möchte: auswählen eines Filters (bspw. Textdateien | *.txt) und entsprechend stellt sich die 'Maske' (=Filter) der FileListBox auf den ausgewählten Filter.

2.Möglichkeit: Die in 1. genannte Verknüpfung offen lassen (also nix zuweisen) und im OnChange() der FilterComboBox folgender Einzeiler
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure FilterComboBox1Change(Sender: TObject);
begin
  FileListBox1.Mask := FilterComboBox1.Mask; // z.B. *.txt
end;

FilterComboBox1.Mask gibt immer die Maske (z.b. *.txt) zurück, während FilterComboBox1.Items[xyz] den 'Klartext' (zb. Textdateien ) zurückgibt. Alles nachzulesen bzw zu 'erarbeiten' aus der OI zum Stichwort TFilterComboBox und hier die Eigenschaften FileList, Filter, Mask ;-)
sexy_betty Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mo 20.11.06 17:00 
@Lannes: tut mir leid, hatte ich aus dem Kopf getippt --> vertan --> daran lag der Fehler nicht.

Ich hatte
ausblenden Delphi-Quelltext
1:
2:
3:
...
FilterComboBox1.FileList := FileList1;
...

benutzt, und das ging ja auch wunderbar, solange man den Filter mit der Maus auswählte. Ich wollte das ja aber eben durch code machen, beispielsweise bei einem ButtonClick. Und das schlug fehl.

Änderte sich auch nicht mit

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure FilterComboBox1Change(Sender: TObject);
begin
  FileListBox1.Mask := FilterComboBox1.Mask; // z.B. *.txt
end;


Das hat mir allerdings die Augen geöffnet. Wenn man das Item setzt, sollte man auch die Maske setzen.

ausblenden Delphi-Quelltext
1:
2:
filtercombobox1.ItemIndex:=2;
filelistbox1.Mask:=filtercombobox1.Mask;


ist also des Rätsels Lösung. Danke für die Hilfe, hat mir sehr geholfen :) --> erledigt