Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Un explorateur de fichiers avec KGF Mer 11 Avr 2018 - 1:11 | |
| Bonsoir ! Je vous livre mon petit code réalisé ce soir qui peut faite office d'explorateur de fichier. Il faut charger la DLL de klaus. Pour voir les 2 icônes dossiers et fichiers il faut créer un fichier ILB avec 2 images Mais vous pouvez testé sans ce fichier sauf qu'il n'y aura pas d’icônes ! Dernière chose, lorsque vous cliquez sur un fichier cela vous fait sortir du programme. Après a vous de voir comment l'utiliser... Voila une capture d'écran : Et voici le code : - Code:
-
' ------------------------- DECLARATION DES VARIABLES -------------------------- DIM a% , b% , c% , d% , no% ,t$ DIM res% , index% , IL% , tree% , doss% , PAN%(26) , ALP%
DIM cFond% : cFond%=hex("909090") : ' gris DIM cFont% : cFont%=hex("000000") : ' noir DIM cSelect% : cSelect%=hex("FF0000") : ' bleu
' --------------------------- DECLARATION DES LABELS --------------------------- LABEL menu , erreur , retour , evenement ' ----------------------------- GESTION DES OBJETS ----------------------------- LEFT no%,5 : TOP no%,5 : WIDTH no%,300 : HEIGHT no%,500 : COLOR no%,30,30,30 : BORDER_HIDE no% : no%=no%+1
FOR a%=65 TO 90 PANEL no% : PARENT no%,0 : CAPTION no%,CHR$(a%)+":" : TOP no%,5 : WIDTH no%,20 : HEIGHT no%,20 : ON_CLICK no%,menu IF DISK_EXISTS(CHR$(a%))=1 : SHOW no% : b%=b%+1 : LEFT no%,b%*20-15 : ELSE : HIDE no% : END_IF PAN%(a%-64)=no% : no%=no%+1 NEXT a%
ALPHA no% : PARENT no%,0 : LEFT no%,5 : TOP no%,30 : WIDTH no%,290 : FONT_COLOR no%,255,255,255 : ALP%=no% : no%=no%+1 ' -------------------------- CHARGEMENT DE LA DLL KGF -------------------------- DLL_ON "KGF.dll" PAUSE 1000
' ----------------------------- CREATION DE L'IMAGELIST ------------------------ IL%=DLL_CALL2("CreateImageList",15,15) t$="" : ' "D:\BASIC\GPP2\lolo.ilb" res%=DLL_CALL2("LoadImageList",IL%,adr(t$))
' ----------------------------- CREATION DE L'ICONLIST ------------------------- res% = dll_call1("SetMainFormHandle",handle(0)) tree%=DLL_CALL3("CreateIconListBox",handle(0),IL%,3) res%=DLL_CALL5("LocateIconListBox",tree%,5,45,(WIDTH_CLIENT(0)-10),(HEIGHT_CLIENT(0)-50)) t$="D:"
retour:
affichage(t$)
' --------------------------- GESTION DES EVENEMENTS --------------------------- ON_ERROR_GOTO erreur ON_USER_EVENT evenement END
' ------------------------------- MENU PRINCIPAL ------------------------------- menu: FOR a%=1 TO 26 IF NUMBER_CLICK=PAN%(a%) res%=dll_call1("ClearIconListBox",tree%) : affichage(CAPTION$(a%)+"") : COLOR PAN%(a%),255,150,0 ELSE COLOR PAN%(a%),230,230,230 END_IF NEXT a% RETURN
' --------------------------------- EVENEMENT ---------------------------------- evenement: IF BIN_AND(USER_EVENT_WPARAM,HEX("FF000000"))=HEX("0A000000") IF BIN_AND(USER_EVENT_WPARAM,HEX("00FF0000"))<>HEX("00010000") THEN RETURN index%=BIN_AND(USER_EVENT_WPARAM,HEX("0000FFFF")) t$=string$(50," ") : res%=dll_call3("GetItemOfIconListBox",tree%,index%,adr(t$)) : t$=trim$(t$) IF FILE_EXISTS(t$)=1 THEN MESSAGE t$ : TERMINATE IF index%<=doss% res%=dll_call1("ClearIconListBox",tree%) IF RIGHT$(DIR_CURRENT$,1)="" : t$=DIR_CURRENT$+t$ : ELSE : t$=DIR_CURRENT$+chr$(92)+t$ : END_IF affichage(t$) END_IF END_IF RETURN
' ----------------------------------- ERREUR ----------------------------------- erreur: SELECT ERROR_NUMBER CASE 161 MESSAGE "Répertoire inaccessible !" t$=LEFT$(chem$,LEN(chem$)-INSTR_RIGHT(chem$,"")) GOTO retour END_SELECT TERMINATE RETURN
' --------------------------------- AFFICHAGE ---------------------------------- SUB affichage(chem$) INACTIVE 0 res% = dll_call2("OptionsForIconListBox",tree%,3) res% = dll_call4("SetColorsForIconListBox",tree%,cFond%,cFont%,cSelect%) ' Choix du dossier IF DIR_EXISTS(chem$)=1 THEN DIR_CHANGE chem$ : CAPTION ALP%,DIR_CURRENT$ : doss%=0 ' Affichage des sous_dossiers t$=FILE_FIND_FIRST$ WHILE t$<>"_" IF t$<>"." AND DIR_EXISTS(t$)=1 THEN res%=dll_call6("AddItemToIconListBox",tree%,adr(t$),1,1,0,0) : doss%=doss%+1 t$=FILE_FIND_NEXT$ END_WHILE FILE_FIND_CLOSE
' Affichage des fichiers t$=FILE_FIND_FIRST$ WHILE t$<>"_" IF t$<>"." AND DIR_EXISTS(t$)<>1 THEN res%=dll_call6("AddItemToIconListBox",tree%,adr(t$),2,1,0,0) t$=FILE_FIND_NEXT$ END_WHILE FILE_FIND_CLOSE ACTIVE 0 END_SUB
| |
|