Thema: Delphi Dateifilter definieren

Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Dateifilter definieren

  Alt 18. Feb 2020, 13:38
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:
embarcadero-images-bmp.jpg
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat