Seite 2 von 2

Verfasst: 23.10.2005 11:18
von Tafkadasom2k5
Jahaaa, danke für eure Mühen, ich habs mit eurer Hilfe jetzt geschafft das so hinzubekommen wie ichs wollte...
DANKE für Eure Hilfe, ihr habt mir echt geil geholfen..
Ich habs n bissl anders geschrieben, aber ich habs jetzt dafür auch alles kapiert-Kiffis Code hat mir geholfen wennsch ned mehr weiter wusste um meinen eigenen Ansatz fertig zu bekommen.
Im Grunde sind die beiden aber sehr gleich-aber ist auf meinem eigenen Mist gewachsen-und dadurch hab ich wieder viel gelernt :)

Gr33tz DerMarc

P.S.:
Für die dies interessiert-hier mein "eigener" (stolzbin) Code.

Code: Alles auswählen

Procedure Fill_ListIconGadget(Directory.s)
  Ordner = ExamineDirectory(#PB_Any,Directory,"*.*")   ;Alle Dateien Durchsuchen
  Debug Ordner 
  
  Repeat                             ;wird wiederholt, bis das Ende des Ordners erreicht ist
    Test = NextDirectoryEntry()      ;Test enspricht hiernach 1 oder 2-d.H., dass man daran erkent ob es ne Datei oder n Ordner ist.
    If Test = 1
      If GetExtensionPart(DirectoryEntryName()) = "mp3" Or GetExtensionPart(DirectoryEntryName()) = "MP3"  ;nur zur Liste hinzufügen, wenn die Dtei eine mp3 ist.
        AddGadgetItem(#Listicon_Stick,-1,DirectoryEntryName(),Image3)
      EndIf
      
    EndIf
    If Test = 2 And DirectoryEntryName() <> "." And DirectoryEntryName() <> ".."
      AddGadgetItem(#Listicon_Stick,-1,DirectoryEntryName(),Image4)
      NewDirectory.s = Directory + "/" + DirectoryEntryName() 
      Fill_ListIconGadget(NewDirectory)
      UseDirectory(Ordner)
    EndIf
    
    
  Until Test = 0
  
EndProcedure

Verfasst: 23.10.2005 11:20
von Tafkadasom2k5
Okaber nun habsch noch ne letzte Frage :)

Wo bekommt man das aktuelle Windows Ordner Zeichen her-und wo das aktuelle MP3 Icon?

Hoffe das wird ned zu kompliziert.
Oder wie komme ich generell an die Icons der Shell32 ?

MFG
Marc

Verfasst: 23.10.2005 12:20
von Kiffi
so auf den ersten Blick noch ein kleiner Verbesserungsvorschlag:

Wenn Du diese Zeile verwendest:
Tafkadasom2k5 hat geschrieben:

Code: Alles auswählen

If GetExtensionPart(DirectoryEntryName()) = "mp3" Or GetExtensionPart(DirectoryEntryName()) = "MP3"  ;nur zur Liste hinzufügen, wenn die Dtei eine mp3 ist.
... dann gehen Dir "mP3" und "Mp3" - Dateien durch die Lappen.

Mit folgender Zeile ermittelst Du alle 'MP3' unabhängig von der Schreibweise:

Code: Alles auswählen

If LCase(GetExtensionPart(DirectoryEntryName())) = "mp3" ;nur zur Liste hinzufügen, wenn die Dtei eine mp3 ist.
Grüße ... Kiffi

Verfasst: 23.10.2005 13:19
von Tafkadasom2k5
Hey Danke, gute Idee!
-Jetzt nur noch die Frage mit den Icons...

Wie komme ich mit PB an die Windows Shell32 Icons? Oder an das "aktuelle" PC-MP3 Logo?

Merci im Vorraus,
Der Marc

Verfasst: 23.10.2005 13:55
von Kiffi
> Oder an das "aktuelle" PC-MP3 Logo?

ich habe mal etwas zusammengebastelt:

Code: Alles auswählen

Structure SHELLICONLIST 
  hLarge.l 
  hSmall.l 
EndStructure 

myIcon.SHELLICONLIST
shInfo.SHFILEINFO  

MP3File$ = [Hier kommt der Pfad und Name einer real existierenden MP3-Datei hin]
 
SHGETFILEINFO_(MP3File$,FILE_ATTRIBUTE_NORMAL,@shInfo,SizeOf(SHFILEINFO),#SHGFI_USEFILEATTRIBUTES|#SHGFI_ICON) 

myIcon\hLarge=shInfo\hIcon 

SHGETFILEINFO_(MP3File$,FILE_ATTRIBUTE_NORMAL,@shInfo,SizeOf(SHFILEINFO),#SHGFI_USEFILEATTRIBUTES|#SHGFI_ICON|#SHGFI_SMALLICON) 

myIcon\hSmall=shInfo\hIcon 

Debug myIcon\hSmall
Debug myIcon\hLarge

Enumeration
  #frmIconTest
  #imgIconLarge
  #imgIconSmall
EndEnumeration

OpenWindow(#frmIconTest,0,0,100,100,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"")
CreateGadgetList(WindowID(#frmIconTest))
ImageGadget(#imgIconLarge,  0,0,32,32,myIcon\hLarge, #PB_Image_Border)
ImageGadget(#imgIconSmall, 40,0,32,32,myIcon\hSmall, #PB_Image_Border)

Repeat
  
Until WaitWindowEvent() = #PB_Event_CloseWindow

If myIcon\hLarge<>0
  DestroyIcon_(myIcon\hLarge) 
EndIf 
If myIcon\hSmall<>0
  DestroyIcon_(myIcon\hSmall) 
EndIf
Grüße ... Kiffi