Hi zusammen
Das obige Beispiel von p80286 hab ich fast identisch übernommen:
Delphi-Quellcode:
Node.Enabled := False; // Datefilter (Dateiendung) festgestellt. Wenn nein,
Lextension := ExtractFileExt(aRealName);
if SameText(FFileType,Lextension) then
Node.Enabled := True;
if (FFileType = 'alle Dateien') then
Node.Enabled := true;
Erstmal wird Enabled auf False gestellt. Und anschliessend gibt es 2 Fälle, in denen Enabled True sein muss:
- Wenn die Endung dem Filter entspricht oder
- Alle Dateien angezeigt / Enabled werden sollen
Allerdings hab ich noch ein anderes Problem:
Erstmal hab ich das Programm gestartet. Dann fülle ich die Combobox mit den Dateifiltern:
Delphi-Quellcode:
function TFileSearchContainerFrame. FillCmbxFileType: String;
var i: integer;
begin
For i := Low(TExtendedArray) to High(TExtendedArray) do
begin
CmbxFileType.Items.Add(TExtendedArray[i]);
if i = 0 then
CmbxFileType.Text := CmbxFileType.Items[0];
end;
Result := CmbxFileType.Text;
end;
Aufgerufen wird so:
Delphi-Quellcode:
constructor TFileSearchContainerFrame.Create(AOwner: TComponent);
begin
inherited;
...
FFileExtension := FillCmbxFileType;
Edit2.Text := FFileExtension;
Panel1.Caption := OpenFileFrame1.Filetype;
end;
Die Caption des Panels zeigt mir, dass das Property OpenFileFrame1.Filetype den richtigen Wert hat. Nun navigiere ich zu dem oberen der beiden Ordner mit den BMP-Inhalten und öffne ihn. Als Dateityp ist 'Alle Dateien' ausgewählt. Die Inhalte werden mir disabled angezeigt.
Ich ändere jetzt den Dateityp auf *.bmp und öffne den 2. Ordner. Dessen Inhalte werden mir Enabled angezeigt.
Ich schliesse den ersten Ordner und öffne ihn wieder: es ändert sich nichts.
Erstes Missverständnis: Bisher hab ich geglaubt, die Dateisuche würde jedesmal ausgeführt, wenn ich einen Ordner öffne. Die Enabledwerte im ersten Ordner beweisen, dass dem nicht so ist.
Mit welchem Ereignis kann ich Nodes erreichen, die erzeugt und wieder ausgeblendet wurden und schliesslich wieder angezeigt werden?
Gruss
Delbor