AGB  ·  Datenschutz  ·  Impressum  







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

ShellTreeView FILTER ?!

Ein Thema von Tommy1988 · begonnen am 6. Okt 2007 · letzter Beitrag vom 6. Okt 2007
 
Tommy1988
(Gast)

n/a Beiträge
 
#6

Re: ShellTreeView FILTER ?!

  Alt 6. Okt 2007, 14:02
Mhh... ich schreibe mal den ganzen code hier rein,
Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ShellCtrls, sSkinManager, sSkinProvider, StdCtrls, sButton,
  sLabel, FileCtrl;

  const
  shlwapi = 'SHLWAPI.DLL';

  function PathMatchSpec(pszFileParam, pszSpec: PAnsiChar): BOOL;
  stdcall external shlwapi name 'PathMatchSpecA';

type
  TForm3 = class(TForm)
    sSkinProvider1: TsSkinProvider;
    sSkinManager3: TsSkinManager;
    ShellTreeView1: TShellTreeView;
    sLabel1: TsLabel;
    sButton1: TsButton;
    FilterComboBox1: TFilterComboBox;
    procedure FilterComboBox1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ShellTreeView1AddFolder(Sender: TObject; AFolder: TShellFolder;
      var CanAdd: Boolean);
    procedure sButton1Click(Sender: TObject);
    procedure ShellTreeView1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  WantMerge: Boolean;
  end;

var
  Form3: TForm3;

implementation
uses Unit1;

{$R *.dfm}

function PathMatchSpecs(const fn: TFileName; const mask: string): Boolean;
var
  s: TStrings;
  ok: Boolean;
  i: Integer;
begin
  ok := False;
  with TStringList.Create do
  try
    Delimiter := ';';
    DelimitedText := mask;
    for i := 0 to Pred(Count) do
    begin
      ok := ok or PathMatchSpec(PChar(fn), PChar(Strings[i]));
      if ok then
        Break;
    end;
  finally
    Free;
  end;
  Result := ok;
end;

procedure TForm3.ShellTreeView1Click(Sender: TObject);
begin
sLabel1.Caption := 'Aktueller Pfad: ' + ShellTreeView1.Path;
end;

procedure TForm3.sButton1Click(Sender: TObject);
begin
  Form1.Edit2.Text := ShellTreeView1.Path;
  Close;
end;

procedure TForm3.ShellTreeView1AddFolder(Sender: TObject; AFolder: TShellFolder;
  var CanAdd: Boolean);

begin
  CanAdd := AFolder.IsFolder or
  PathMatchSpecs(AFolder.DisplayName, FilterComboBox1.Mask);
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
FilterComboBox1.Filter := 'Alle Dateien (*.*)|*.*|Textdateien (*.txt)|*.txt';
   ShellTreeView1.ObjectTypes := [otNonFolders]
   + ShellTreeView1.ObjectTypes;
end;

procedure TForm3.FilterComboBox1Change(Sender: TObject);
begin
ShellTreeView1.Refresh(ShellTreeView1.Items.GetFirstNode);
end;

end.
  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 18:18 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