AGB  ·  Datenschutz  ·  Impressum  







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

FilterComboBox und ShellListView kombinieren

Ein Thema von Matze · begonnen am 27. Jan 2004 · letzter Beitrag vom 28. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 14:31
Hi!

Nochmal was

Ich will das ShellListView filtern ==> Geht aber nicht (die Suche brachte nur eine Kompo)

Die FilterComboBox (Register 3.1) kann das, jedoch nur, wenn ich sie mit FileListBox (auch 3.1) verknüpfe.

Das Design der alten Komponenten gefällt mir ja gar nicht.


Kann man ohne Fremdkomponenten diese FilterComboBox mit dem ShellListView kombinieren?
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 14:44
Mach alles manuell mit einer ListView und die Dateien suchst du dann mit FindFirst und FindNext. So habe ich es auch gemacht. Die Verzeichnisse lasse ich aber weiterhin von der ShellTreeView wählen, nur für die Darstellung der Dateien verwende ich dann das ListView.

Wenn dir das nicht weiterhilfst, kann ich dir auch ein wenig Code posten.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 16:38
Cool, die Idee ist genaial, bin ich gar nicht draufgekommen.

Das schaffe ich soweit selber, wenn es sich nur um eine Dateiendung handelt. Weiß du, wie ich mehrere Endungen zulassen kann, außer mit einer Schleife?
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 17:07
Einfach ne schleife für die einzelnen Endungen durchlaufen lassen und alles in eine Liste und das ganze dann ab inne ListView.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 17:18
OK, dann mache ich das so, vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 17:23
Nur sieht das doof aus, wenn es ohne Icons da ist
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#7

Re: FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 17:31
Achso, ja die Icons ^^

Also du machst dir ne Variable in den public Bereich deines Forms vom Typ TImageList.
Im OnCreate deines Forms schreibst du dann:

Delphi-Quellcode:
var
  SHFileInfo: TSHFileInfo;
  SysIcons: THandle;
begin
  // ...
  GlobalImageList := TImageList.Create(MainForm);
  // oder halt andere ImageList
  try
    SysIcons := SHGetFileInfo(PChar(copy(ParamStr(0), 1, 3)), 0, SHFileInfo,
      SizeOf(SHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON or
      SHGFI_ICON);
  finally
    DestroyIcon(SHFileInfo.hIcon);
  end;
  ListView.ViewStyle := vsReport;
  ListView1.SmallImages := GlobalImageList;
Die Prozedur ist auch noch hilfreich:
Delphi-Quellcode:
function GetAssociatedIcon(const AExtension: string; ASmall: Boolean): HIcon;
var
  Info: TSHFileInfo;
  Flags: Cardinal;
begin
  if ASmall then
    Flags := SHGFI_ICON or SHGFI_SMALLICON or SHGFI_USEFILEATTRIBUTES
  else
    Flags := SHGFI_ICON or SHGFI_LARGEICON or SHGFI_USEFILEATTRIBUTES;

  SHGetFileInfo(PChar(AExtension), FILE_ATTRIBUTE_NORMAL, Info, SizeOf(TSHFileInfo), Flags);
  Result := Info.hIcon;
end;
Und dann in der Prozedur, wo du die Items hinzufügst
Delphi-Quellcode:
  var
    Icon: TIcon;
  begin
    // ...
    Icon := TIcon.Create;
    try
      Icon.Handle := GetAssociatedIcon(ExtractFileExt(DateiName), True);
      Icon.Transparent := True;
      // dem Item das hinzugefügt wurde zuweisen:
      // Item hinzufügen...
      Item.ImageIndex := GlobalImageList.AddIcon(Icon);
    finally
      Icon.Free;
    end;
    // ...
  end;
Schreib es dir nach belieben um ^^

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 18:03
Danke erstmal, muss ich mir mal durch den Kopf gehen lassen.

Wessen Eigenschaft ist dieses Item?
Item.ImageIndex := GlobalImageList.AddIcon(Icon);
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#9

Re: FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 18:17
also das "Item" ist das Item, dass du gerade der liste der listview hinzugefügt hast...

Ich mache das nämlich immer so:

Delphi-Quellcode:
var
  Item: TListItem;
begin
  Item := ListView1.Items.Add();
  Item.Caption := 'Irgendwas';
  Item.ItemIndex := GlobalImageList.AddIcon(Icon);
end;
mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: FilterComboBox und ShellListView kombinieren

  Alt 27. Jan 2004, 19:10
Danke, aber ich muss nochmal verven.

Ich hab das jetzt so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Icon: TIcon;
  Item: TListItem;
  i: integer;
begin
  for i := 1 to ListBox1.Count - 1 do
  begin
    Icon := TIcon.Create;
    try
      Icon.Handle := GetAssociatedIcon(ExtractFileExt(ListBox1.Items[i]), True);
      Icon.Transparent := True;

      Item := ListView1.Items.Add();
      Item.Caption := ListBox1.Items[i];
      Item.ImageIndex := GlobalImageList.AddIcon(Icon);
    finally
      Icon.Free;
    end;
  end;
end;
Jetzt werden einfach leere Strings in die ListView eingefügt, kein Icon, kein Dateiname.
Kannst du mir da bitte nochmals helfen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz