Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Mon "ImageList Creator" | |
| | Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Mon "ImageList Creator" Mer 24 Fév 2016 - 19:52 | |
| Voilà ma bête. Les imagelist c' est bien mais comment se rappeler les images que l' on a mise dedans ? Celui ci crée un fichier *.inf du même nom avec les dimensions et les noms des fichiers. - Spoiler:
- Code:
-
hide 0 constantes() variables() labels() init() gui() show 0 end
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' DECLARATION DES CONSTANTES ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub constantes() ' -> dossier courant dim path$ ' -> dossiers et fichiers externes dim source$ dim dest$ dim param$ dim kgf$ ' -> objets panoramic dim no% dim opendial% dim mm% dim sm%(20) dim pan% dim cont% dim tvreceiver% dim InfimgL% dim alph_files%,alph_files2%,alph_fic%,alph_h%,alph_w%,alph_nbimg% dim alph_fic2%,alph_h2%,alph_w2%,alph_nbimg2% dim pict% dim but% ' -> objets kgf dim TV% dim IMGlist% end_sub
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' DECLARATION DES VARIABLES ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub variables() dim ActiveLib$ dim txt$ dim saved% dim Nbnode% dim imgl_w% dim imgl_h% dim FileSave1$ dim FileSave2$ dim IMGimport$ dim par$ dim bmp$ end_sub
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' DECLARATION DES LABELS ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub labels() label clic,dclic,change,close0,L,format end_sub
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' INITIALISATIONS ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub init() dim_local i%,f$ ' -> dossier courant path$ = dir_current$ if right$(path$,1)="\" : path$ = left$(path$,len(path$)-1) : end_if ' -> fichiers externes source$ = path$+"\src\" if dir_exists(source$)=0 : dir_make source$ : end_if dest$ = path$+"\lib\" if dir_exists(source$)=0 : dir_make source$ : end_if param$ = path$+"\param.inf" ' -> objets panoramic no%=no%+1 : mm%=no% for i%=1 to 20 : no%=no%+1 : sm%(i%)=no% : next i% no%=no%+1 : pan%=no% no%=no%+1 : tvreceiver%=no% no%=no%+1 : InfimgL%=no% no%=no%+1 : cont%=no% no%=no%+1 : alph_files%=no% no%=no%+1 : alph_fic%=no% no%=no%+1 : alph_h%=no% no%=no%+1 : alph_w%=no% no%=no%+1 : alph_nbimg%=no% no%=no%+1 : alph_files2%=no% no%=no%+1 : alph_fic2%=no% no%=no%+1 : alph_h2%=no% no%=no%+1 : alph_w2%=no% no%=no%+1 : alph_nbimg2%=no% no%=no%+1 : pict%=no% no%=no%+1 : but%=no% no%=no%+1 : opendial%=no% ' -> paramètres if file_exists(param$)=1 file_open_read 1,param$ file_readln 1,kgf$ file_close 1 else open_dialog opendial% dir_dialog opendial%,"C:\" filter opendial%,"*.dll|*.dll" f$=file_name$(opendial%) delete opendial% if f$<>"_" kgf$=f$ file_open_write 1000,param$ file_writeln 1000,kgf$ file_close 1000 end_if end_if dll_on kgf$ end_sub
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' INTERFACE UTILISATEUR ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub gui() dim_local res%,w%,h%
height 0,350 width 0,700 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 font_name 0,"arial" font_size 0,8 caption 0,"ImageList Creator" on_close 0,close0 main_menu mm% sub_menu sm%(1) : parent sm%(1),mm% : caption sm%(1),"Fichiers" sub_menu sm%(2) : parent sm%(2),sm%(1) : caption sm%(2),"Nouveau" : on_click sm%(2),clic sub_menu sm%(3) : parent sm%(3),sm%(1) : caption sm%(3),"Ouvrir" : on_click sm%(3),clic sub_menu sm%(4) : parent sm%(4),sm%(1) : caption sm%(4),"Enregistrer" : on_click sm%(4),clic sub_menu sm%(5) : parent sm%(5),sm%(1) : caption sm%(5),"-" sub_menu sm%(6) : parent sm%(6),sm%(1) : caption sm%(6),"Quitter" : on_click sm%(6),clic sub_menu sm%(7) : parent sm%(7),mm% : caption sm%(7),"Edition" sub_menu sm%(8) : parent sm%(8),sm%(7) : caption sm%(8),"Ajouter" : inactive sm%(8) : on_click sm%(8),clic sub_menu sm%(9) : parent sm%(9),sm%(7) : caption sm%(9),"Supprimer" : inactive sm%(9) : on_click sm%(9),clic
panel pan% full_space pan% w%=width(pan%) h%=height(pan%) hide pan%
edit tvreceiver% on_change tvreceiver%,change hide tvreceiver% TV% = dll_call3("CreateTreeViewEx",handle(0),1,0) res% = dll_call5("ResizeTreeView",TV%,6,1,250-2,h%-7) res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(tvreceiver%)) container cont% height cont%,h% width cont%,w%-250 top cont%,0 left cont%,250 font_bold cont% caption cont%," Info Fichiers " font_bold_off cont% alpha alph_files% parent alph_files%,cont% top alph_files%,30 left alph_files%,10 font_bold alph_files% font_size alph_files%,10 font_color alph_files%,0,0,200 caption alph_files%," - ImageList -"
alpha alph_fic% parent alph_fic%,cont% top alph_fic%,60 left alph_fic%,10 font_bold alph_fic% font_color alph_fic%,120,10,0 caption alph_fic%,"Fichier : "
alpha alph_fic2% parent alph_fic2%,cont% top alph_fic2%,60 left alph_fic2%,120 font_bold alph_fic2% caption alph_fic2%,""
alpha alph_h% parent alph_h%,cont% top alph_h%,80 left alph_h%,10 font_bold alph_h% font_color alph_h%,120,10,0 caption alph_h%,"Hauteur (px) : "
alpha alph_h2% parent alph_h2%,cont% top alph_h2%,80 left alph_h2%,120 font_bold alph_h2% caption alph_h2%,""
alpha alph_w% parent alph_w%,cont% top alph_w%,100 left alph_w%,10 font_bold alph_w% font_color alph_w%,120,10,0 caption alph_w%,"Largeur (px) : " alpha alph_w2% parent alph_w2%,cont% top alph_w2%,100 left alph_w2%,120 font_bold alph_w2% caption alph_w2%,""
alpha alph_nbimg% parent alph_nbimg%,cont% top alph_nbimg%,130 left alph_nbimg%,10 font_bold alph_nbimg% font_color alph_nbimg%,120,10,0 caption alph_nbimg%,"Nombre d' images : "
alpha alph_nbimg2% parent alph_nbimg2%,cont% top alph_nbimg2%,130 left alph_nbimg2%,120 font_bold alph_nbimg2% caption alph_nbimg2%,"" alpha alph_files2% parent alph_files2%,cont% top alph_files2%,160 left alph_files2%,10 font_bold alph_files2% font_size alph_files2%,10 font_color alph_files2%,0,0,200 caption alph_files2%," - Image -" picture pict% parent pict%,cont% top pict%,180 left pict%,10 hide pict% button but% parent but%,cont% top but%,180 left but%,10 caption but%," Ouvrir " cursor_point but% on_click but%,clic hide but%
dlist InfimgL%
end_sub
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' MENUS : CLICK - DOUBLE_CLICK - CHANGE - CLOSE0 ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clic: if number_click = sm%(2) Nbnode% = dll_call3("GetTreeViewInformation",TV%,0,0) if Nbnode%<>0 if saved%=0 if message_warning_yes_no("L' imagelist en cours n' a pas été enregistrée !"+chr$(13)+"Voulez vous enregistrer vos modifications ?...")=1 SaveLib() end_if end_if end_if NettoyageTV() CreateLib() resize_picture() active sm%(8) active sm%(9) return end_if if number_click = sm%(3) ouvrir() resize_picture() active sm%(8) active sm%(9) return end_if if number_click = sm%(4) SaveLib() return end_if if number_click = sm%(6) quitter() return end_if if number_click = sm%(8) ajouter() return end_if if number_click = sm%(9) supprimer() return end_if if number_click = but% execute bmp$ return end_if return
dclic: return
change: if left$(text$(tvreceiver%),12)="double_click" extract() end_if return
close0: quitter() return
' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' PROCEDURES ET FONCTIONS ' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub NettoyageTV() dim_local res% res% = dll_call1("ClearTreeView",TV%) caption alph_fic2%,"" caption alph_h2%,"" caption alph_w2%,"" caption alph_nbimg2%,"" if IMGlist%<>0 res% = dll_call1("DeleteImageList",IMGlist%) clear InfimgL% end_if end_sub
' ------------------------------------------------------------------------------
sub CreateLib() dim_local m%,res% L: if message_input("Nouveau","Nom : ","")=1 if message_text$="" goto L else ActiveLib$ = message_text$+".ilb" fileSave1$ = dest$+message_text$+".ilb" fileSave2$ = dest$+message_text$+".inf" end_if if file_exists(dest$+ActiveLib$)=1 m%=message_warning_ok("Une Librairie porte déjà ce nom !..."+chr$(13)+"Choisir un autre nom ?") if m%=1 goto L else exit_sub end_if else txt$ = ActiveLib$ res% = dll_call4("AddTreeViewRootNode",TV%,adr(txt$),0,0) end_if format: if message_input("Dimensions des images","dimensions (ex : 16x16) : ","")=1 verif_format(message_text$) caption alph_fic2%,ActiveLib$ caption alph_h2%,str$(imgl_h%) caption alph_w2%,str$(imgl_w%) caption alph_nbimg2%,"0" item_add InfimgL%,str$(imgl_h%) item_add InfimgL%,str$(imgl_w%) IMGlist% = dll_call2("CreateImageList",imgl_w%,imgl_h%) saved%=0 else goto format end_if else exit_sub end_if end_sub
' ------------------------------------------------------------------------------
sub ouvrir() dim_local res%,f$,t$,i%,m%,ind% Nbnode% = dll_call3("GetTreeViewInformation",TV%,0,0) if Nbnode%<>0 if saved%=0 m%=message_warning_yes_no("La librairie en cours n' a pas été enregistré !!!..."+"Voulez vous enregistré vôtre travail ?") if m%=1 SaveLib() end_if end_if end_if NettoyageTV() dir_change dest$ open_dialog opendial% dir_dialog opendial%,dest$ filter opendial%,"*.ilb|*.ilb" f$=file_name$(opendial%) delete opendial% if f$<>"_"
ActiveLib$=file_extract_name$(f$) fileSave1$ = f$ fileSave2$ = left$(f$,len(f$)-3)+"inf"
file_load InfimgL%,fileSave2$ imgl_h% = val(item_read$(InfimgL%,1)) imgl_w% = val(item_read$(InfimgL%,2)) IMGlist% = dll_call2("CreateImageList",imgl_w%,imgl_h%) res% = dll_call2("LoadImageList",IMGlist%,adr(fileSave1$)) caption alph_fic2%,ActiveLib$ caption alph_h2%,str$(imgl_h%) caption alph_w2%,str$(imgl_w%) caption alph_nbimg2%,count(InfimgL%)-2
txt$ = ActiveLib$ res% = dll_call4("AddTreeViewRootNode",TV%,adr(txt$),0,0)
if count(InfimgL%)>2 txt$ = item_read$(InfimgL%,3) res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),0,0) ind% = 1 end_if
if count(InfimgL%)>3 for i%=4 to count(InfimgL%) txt$ = item_read$(InfimgL%,i%) res% = dll_call3("SelectTreeViewNode",TV%,ind%,0) res% = dll_call5("InsertTreeViewNode",TV%,1,adr(txt$),0,0) ind% = ind%+1 next i% end_if Nbnode% = dll_call3("GetTreeViewInformation",TV%,0,0) if saved%=0 : saved%=1 : end_if end_if end_sub
' ------------------------------------------------------------------------------
sub SaveLib() dim_local m%,res% if count(InfimgL%)-2>0 res% = dll_call2("SaveImageList",IMGlist%,adr(fileSave1$)) file_save InfimgL%,fileSave2$ saved%=1 else m%=message_information_ok("La librairie est vide !"+chr$(13)+"Elle ne sera pas enregistré...") exit_sub end_if end_sub
' ------------------------------------------------------------------------------
sub verif_format(F$) dim_local sep%,imgl_h$,imgl_w$ if instr(F$,"x")=0 message "Format invalide !..." free sep% free imgl_h$ free imgl_w$ goto format else sep% = instr(F$,"x") imgl_h$ = left$(F$,sep%-1) imgl_w$ = right$(F$,len(F$)-sep%) end_if if numeric(imgl_h$)=0 or numeric(imgl_w$)=0 message "Format invalide !..." free sep% free imgl_h$ free imgl_w$ goto format else imgl_h%=val(imgl_h$) imgl_w%=val(imgl_w$) end_if end_sub
' ------------------------------------------------------------------------------
sub quitter() dim_local res% Nbnode% = dll_call3("GetTreeViewInformation",TV%,0,0) if Nbnode%<>0 if saved%=0 if message_warning_yes_no("L' imagelist en cours n' a pas été enregistrée !"+chr$(13)+"Voulez vous enregistrer vos modifications ?...")=1 SaveLib() end_if end_if end_if res% = dll_call1("KillProcessByHandle",handle(0)) end_sub
' ------------------------------------------------------------------------------
sub ajouter() dim_local res%,f$,ind% dir_change source$ open_dialog opendial% dir_dialog opendial%,source$ filter opendial%,"*.bmp|*.bmp" IMGimport$=file_name$(opendial%) delete opendial%
if IMGimport$<>"_" res% = dll_call4("AddImageToImageList",IMGlist%,adr(IMGimport$),0,0) f$=file_extract_name$(IMGimport$) item_add InfimgL%,f$ if saved%=1 : saved%=0 : end_if txt$=f$ Nbnode% = dll_call3("GetTreeViewInformation",TV%,0,0) if Nbnode%=1 res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),0,0) else if Nbnode%>1 ind%=Nbnode%-1 res% = dll_call3("SelectTreeViewNode",TV%,ind%,0) res% = dll_call5("InsertTreeViewNode",TV%,1,adr(txt$),0,0) end_if end_if else exit_sub end_if caption alph_nbimg2%,str$(ind%+1) end_sub
' ------------------------------------------------------------------------------
sub supprimer() dim_local res%,ind%,m%,i%,f$,t$ par$=string$(200," ") ind% = dll_call3("GetTreeViewInformation",TV%,1,0) res% = dll_call3("GetTreeViewInformation",TV%,2,adr(par$)) f$ = trim$(par$) if ind% >0 m%=message_warning_yes_no("Êtes vous sûr de vouloir supprimer :"+chr$(13)+f$) if m%=1 res% = dll_call1("DeleteTreeViewNode",TV%) for i%=1 to count(InfimgL%) t$=item_read$(InfimgL%,i%) if t$=f$ item_delete InfimgL%,i% exit_for end_if next i% caption alph_nbimg2%,count(InfimgL%)-2 if saved%=1 : saved%=0 : end_if else exit_sub end_if end_if end_sub
' ------------------------------------------------------------------------------
sub resize_picture() if imgl_h%>100 hide pict% show but% else height pict%,imgl_h% width pict%,imgl_w% hide but% show pict% end_if end_sub
' ------------------------------------------------------------------------------
sub extract() dim_local res%,ind% ind% = dll_call3("GetTreeViewInformation",TV%,1,0) ind% = ind%-1 bmp$ = Path$+"\temp.bmp" if imgl_h%>100 res% = dll_call5("ExtractImageFromImageList",IMGlist%,ind%,0,0,adr(bmp$)) else res% = dll_call5("ExtractImageFromImageList",IMGlist%,ind%,0,1,0) clipboard_paste pict% end_if end_sub
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Mon "ImageList Creator" Mer 24 Fév 2016 - 20:46 | |
| Jolie réalisation et en effet, ça facilite l'usage | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Mon "ImageList Creator" Mer 24 Fév 2016 - 21:40 | |
| Salut ygeronimi !
j'ai voulu ouvrir le shell32.dll de Windows je sais qu'il y a des icônes dans ce fichier. mais j'ai eu un message d'erreur ACCES AU FICHIER REFUSE !
J'ai peut être pas fait ce qu'il fallait... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon "ImageList Creator" Mer 24 Fév 2016 - 23:28 | |
| Attention, Minibug: shell32.dll n'est pas une ImageList. On ne peut pas l'ouvrir comme ça. Les images contenues dans shell32.dll sont des "ressources" qui peuvent être extraites par ResHacker (excellent gratuiciel). | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Mon "ImageList Creator" Jeu 25 Fév 2016 - 7:31 | |
| c'est bien ce que je pensé, je n'ai pas fais ce qu'il fallait. Désolé ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 25 Fév 2016 - 10:17 | |
| Attention Minibug, cet outil ne fonctionne que pour des ImageList utilisables par kgf.dll Et si tu veux ouvrir un ImageList avec tous les noms de fichier, il te faut l' avoir créé avec cet outils. Le fichier *.inf créé en parallèle te donne dimension Height dimension Width nom du fichier 0 nom du fichier 1 .... Ce qui te permet de savoir les images que contient ta librairie et la dimension des images ( Même dans six mois ). Tu peux aussi te servir de ce fichier dans le cas d' une section "Paramètres" avec un combo. Par defaut, l' appli va chercher les images dans son dossier "src" que j' ai mis pour regrouper les images sources et Enregistre les ImageList + les *.inf dans son dossier "lib" là aussi pour ne pas les éparpiller sur DD de l' ordi. Pour que la fonction Ouvrir ne bug pas, il faut que les deux fichiers soit dans le même dossier. Ce n' est qu' un début, je compte bien l' améliorer mais j' en avais besoin tout de suite pour un autre programme en cours ( que je recommence régulièrement ). | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| | | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 6 Mar 2016 - 0:08 | |
| Une version différente car elle permet de faire un fichier imagelist depuis un dossier. On travaille les images dans un dossier où on les enregistre dans les dimensions voulu. On lance le programme, on suit les instructions et le programme crée un fichier de toutes les images de la dimension sélectionnée au format bmp. Un fichier *.inf avec la liste des noms de fichier des images est créé en parallèle. - Code:
-
hide 0 variables() constantes() labels() init() AskLibName() AskDirSource() gui() show 0 end
sub variables() ' -> incrementation des objets panoramic dim no% ' -> variables système dim LibName$ dim LibFilesList$ dim LibSource$ dim ico%(4) dim adrIlb% dim IL_h% dim IL_w% end_sub
' ------------------------------------------------------------------------------
sub constantes() ' -> dossier courant dim Path$ ' -> dossiers et fichiers externes dim LibDirectory$ dim Param$ dim Kgf$ dim Ilb$ ' -> objets panoramic ' --> form principal dim File_OW% : no%=no%+1 : File_OW% =no% dim File_OR% : no%=no%+1 : File_OR% =no% dim OpenDial% : no%=no%+1 : OpenDial% =no% dim Pan% : no%=no%+1 : Pan% =no% dim AlphLibName% : no%=no%+1 : AlphLibName% =no% dim EditLibName% : no%=no%+1 : EditLibName% =no% dim AlphLibSource% : no%=no%+1 : AlphLibSource% =no% dim EditLibSource% : no%=no%+1 : EditLibSource% =no% dim AlphLibFormat% : no%=no%+1 : AlphLibFormat% =no% dim CombLibFormat% : no%=no%+1 : CombLibFormat% =no% dim ButCreate% : no%=no%+1 : ButCreate% =no% dim MemoFilesList% : no%=no%+1 : MemoFilesList% =no% ' --> form attente dim F_Attente% : no%=no%+1 : F_Attente% =no% dim AlphFA% : no%=no%+1 : AlphFA% =no% dim PB% : no%=no%+1 : PB% =no% dim AlphFic% : no%=no%+1 : AlphFic% =no% ' --> form preview dim F_Preview% : no%=no%+1 : F_Preview% =no% dim EditTV% : no%=no%+1 : EditTV% =no% dim Pict% : no%=no%+1 : Pict% =no% dim AlphPict% : no%=no%+1 : AlphPict% =no% ' -> objets kgf dim IL% dim TV% end_sub
' ------------------------------------------------------------------------------
sub labels() label clic,change,close0,fin end_sub
' ------------------------------------------------------------------------------
sub init() dim_local m%,mes$,f$,i%,mes2$ mes$ = "KGF.dll n' a pas été trouvée dans le dossier courant !!!"+chr$(13)+chr$(13) mes$ = mes$+"Voulez vous la chercher sur votre ordinateur ?..." ' -> dossier courant Path$ = dir_current$ if right$(Path$,1) = "" : Path$ = left$(Path$,len(Path$)-1) : end_if Path$ = Path$+"" ' -> dossier et fichiers externes LibDirectory$ = Path$+"Library" if dir_exists(LibDirectory$) = 0 : dir_make LibDirectory$ : end_if Param$ = Path$+"Param.inf" Kgf$ = Path$+"KGF.dll" if file_exists(kgf$) = 0 if file_exists(Param$) = 1 file_open_read File_OR%,Param$ file_readln File_OR%,kgf$ file_close File_OR% else m%=message_warning_yes_no(mes$) if m% = 1 open_dialog OpenDial% dir_dialog OpenDial%,"C:" filter OpenDial%,"*.dll|*.dll" f$ = file_name$(OpenDial%) delete OpenDial% if f$<>"_" Kgf$ = f$ file_open_write File_OW%,Param$ file_writeln File_OW%,Kgf$ file_close File_OW% end_if else message "Le programme va se fermer."+chr$(13)+"Pensez à télécharger KGF.dll avant de relancer l' application..." gosub fin end_if end_if end_if Ilb$ = Path$+"Img.ilb" if file_exists(Ilb$)=1 adrIlb% = adr(Ilb$) for i%=1 to 3 : ico%(i%)=i% : next i% else mes2$ = "Une librairie d' images pour l' objet Treeview est disponible."+chr$(13) mes2$ = mes2$+"Elle est sur le Webdav de ygeronimi, dans le zip :"+chr$(13) mes2$ = mes2$+"ImageListFromDirectory.zip" message mes2$ adrIlb% = 0 for i%=1 to 3 : ico%(i%)=0 : next i% end_if ' -> chargement de la dll dll_on kgf$ end_sub
' ------------------------------------------------------------------------------
sub gui() dim_local h%,w% height 0,200 width 0,400 font_name 0,"arial" font_size 0,8 caption 0,"ImageList From Directory" panel Pan% full_space Pan% h% = height(Pan%) w% = width(Pan%) delete Pan% alpha AlphLibName% top AlphLibName%,10 left AlphLibName%,10 caption AlphLibName%,"Nom de la librairie :" edit EditLibName% width EditLibName%,250 top EditLibName%,25 left EditLibName%,10 font_color EditLibName%,0,0,200 text EditLibName%,file_extract_name$(LibName$) inactive EditLibName%
alpha AlphLibSource% top AlphLibSource%,50 left AlphLibSource%,10 caption AlphLibSource%,"Source :" edit EditLibSource% width EditLibSource%,w%-20 top EditLibSource%,65 left EditLibSource%,10 font_color EditLibSource%,0,0,200 text EditLibSource%,LibSource$ inactive EditLibSource% alpha AlphLibFormat% top AlphLibFormat%,90 left AlphLibFormat%,10 caption AlphLibFormat%,"Dimensions :"
combo CombLibFormat% width CombLibFormat%,80 top CombLibFormat%,105 left CombLibFormat%,10 font_color CombLibFormat%,0,0,200 on_click CombLibFormat%,clic item_add CombLibFormat%,"16x16" item_add CombLibFormat%,"24x24" item_add CombLibFormat%,"32x32" item_add CombLibFormat%,"48x48" item_add CombLibFormat%,"64x64" item_add CombLibFormat%,"128x128" button ButCreate% top ButCreate%,h%-30 left ButCreate%,w%-(width(ButCreate%)+5) caption ButCreate%,"Créer" cursor_point ButCreate% on_click ButCreate%,clic dlist MemoFilesList% end_sub
' ------------------------------------------------------------------------------
sub FormAttente() dim_local res%,h%,w% if object_exists(F_Attente%)=1 show F_Attente% else form F_Attente% height F_Attente%,100 width F_Attente%,300 top F_Attente%,top(0)+((height(0)-height(F_Attente%))/2) left F_Attente%,left(0)+((width(0)-width(F_Attente%))/2) font_name F_Attente%,"arial" font_size F_Attente%,8 caption F_Attente%,"Patienter SVP..." panel Pan% parent Pan%,F_Attente% full_space Pan% h% = height(Pan%) w% = width(Pan%) delete Pan% alpha alphFA% parent alphFA%,F_Attente% top alphFA%,10 left alphFA%,10 caption alphFA%,"Etape : 0 / 2" progress_bar PB% parent PB%,F_Attente% top PB%,25 left PB%,10 width PB%,w%-20 min PB%,0 max PB%,2 position PB%,0 alpha AlphFic% parent AlphFic%,F_Attente% top AlphFic%,50 left AlphFic%,10 end_if res% = DLL_call2("WindowTopMost",handle(F_Attente%),1) end_sub
' ------------------------------------------------------------------------------
sub FormPreview() dim_local res%,h%,w%,txt$,i% if object_exists(F_Preview%)=1 show F_Preview% else form F_Preview% height F_Preview%,350 width F_Preview%,500 top F_Preview%,top(0)+100 left F_Preview%,left(0)+(width(0)+10) font_name F_Preview%,"arial" font_size F_Preview%,8 caption F_Preview%,"Preview" panel Pan% parent Pan%,F_Preview% full_space Pan% h% = height(Pan%) w% = width(Pan%) delete Pan% edit EditTV% parent EditTV%,F_Preview% hide EditTV% on_change EditTV%,change TV% = dll_call3("CreateTreeViewEx",handle(F_Preview%),1,adrIlb%) res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(EditTV%)) res% = dll_call5("ResizeTreeView",TV%,0,0,w%,h%-IL_h%) txt$ = file_extract_name$(LibName$) res% = dll_call4("AddTreeViewRootNode",TV%,adr(txt$),ico%(2),ico%(2)) for i%=1 to count(MemoFilesList%) res% = dll_call3("SelectTreeViewNode",TV%,0,0) txt$ = item_read$(MemoFilesList%,i%) res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),ico%(3),ico%(3)) next i% Picture Pict% parent Pict%,F_Preview% height Pict%,IL_h% width Pict%,IL_w% top Pict%,h%-IL_h% left Pict%,w%-(IL_w%+5) alpha AlphPict% parent AlphPict%,F_Preview% top AlphPict%,(h%-IL_h%)+2 left AlphPict%,10 end_if res% = DLL_call2("WindowTopMost",handle(F_Preview%),1) end_sub
' ------------------------------------------------------------------------------
clic: ' -> clic sur le combo de choix des dimensions de la librairie if number_click = CombLibFormat% SelectImageListDim(item_index(CombLibFormat%)) return end_if ' -> clic sur le bouton de création de la librairie if number_click = ButCreate% inactive ButCreate% if item_index(CombLibFormat%)<>0 FormAttente() CreateFilesList() if count(MemoFilesList%)>0 CreateImageList() hide F_Attente% pause 2000 FormPreview() end_if else if message_warning_ok("Veuillez sélectionner le format de la librairie !!!")=1 end_if end_if return end_if return
change: if left$(text$(EditTV%),12)="double_click" PreviewPicture() end_if return
close0: Quitter() return
fin: terminate return
' ------------------------------------------------------------------------------
sub AskLibName() dim_local r$ if message_input("Nom de la librairie","Nom : ","")=1 r$ = message_text$ if r$<>"" LibName$ = LibDirectory$+r$+".ilc" LibFilesList$ = LibDirectory$+r$+".inf" else message "Le programme va se fermer."+chr$(13)+"Au revoir..." gosub Close0 end_if else message "Le programme va se fermer."+chr$(13)+"Au revoir..." gosub Close0 end_if end_sub
' ------------------------------------------------------------------------------
sub AskDirSource() dim_local res%,racine$,dossier$ racine$ = "C:" dossier$ = string$(255," ") res% = DLL_call4("FolderSelect",adr(racine$),adr(dossier$),len(dossier$),0) dossier$ = trim$(dossier$) if dossier$<>"" LibSource$ = dossier$+"" else message "Le programme va se fermer."+chr$(13)+"Au revoir..." gosub close0 end_if end_sub
' ------------------------------------------------------------------------------
sub SelectImageListDim(d%) dim_local p% p% = d% select p% case 1 IL_h%=16 IL_w%=16 case 2 IL_h%=24 IL_w%=24 case 3 IL_h%=32 IL_w%=32 case 4 IL_h%=48 IL_w%=48 case 5 IL_h%=64 IL_w%=64 case 6 IL_h%=128 IL_w%=128 end_select end_sub
' ------------------------------------------------------------------------------
sub CreateFilesList() dim_local res%,f$,haut%,larg% clear MemoFilesList% Caption alphFA%,"Etape : 1 / 2 Création de la liste des fichiers" dir_change LibSource$ f$ = file_find_first$ if instr(f$,".")>2 if file_extract_extension$(f$)=".bmp" res% = dll_call3("AnalyzeImageFile",adr(f$),adr(larg%),adr(haut%)) if haut%=IL_h% and larg%=IL_w% item_add MemoFilesList%,file_extract_name$(f$) end_if end_if end_if f$ = file_find_next$ while f$<>"_" if instr(f$,".")>2 if file_extract_extension$(f$)=".bmp" res% = dll_call3("AnalyzeImageFile",adr(f$),adr(larg%),adr(haut%)) if haut%=IL_h% and larg%=IL_w% item_add MemoFilesList%,file_extract_name$(f$) end_if end_if end_if f$ = file_find_next$ end_while file_find_close dir_change Path$ position PB%,Position(PB%)+1 end_sub
' ------------------------------------------------------------------------------
sub CreateImageList() dim_local res%,cpt%,i%,f$,b$,mes$,ni%,num_ni$,nidel%,sep% Caption alphFA%,"Etape : 2 / 2 Création de la l' imagelist" if count(MemoFilesList%)>0 cpt% = count(MemoFilesList%) IL% = dll_call2("CreateImageList",IL_w%,IL_h%) for i%=1 to cpt% f$= LibSource$+item_read$(MemoFilesList%,i%) res% = dll_call4("AddImageToImageList",IL%,adr(f$),0,0) pause 500 if res% = -1 font_color AlphFic%,200,0,0 b$=b$+f$+chr$(13) ni%=ni%+1 num_ni$ = num_ni$+str$(i%)+";" else font_color AlphFic%,0,0,200 end_if caption AlphFic%,item_read$(MemoFilesList%,i%)+" ["+str$(res%)+"]" display next i% if ni%>0 for i%=1 to ni% sep% = instr(num_ni$,";") nidel% = val(left$(num_ni$,sep%-1)) num_ni$ = right$(num_ni$,len(num_ni$)-sep%) next i% end_if end_if position PB%,Position(PB%)+1 file_save MemoFilesList%,LibFilesList$ res% = dll_call2("SaveImageList",IL%,adr(LibName$)) if b$<>"" mes$ = str$(ni%)+" fichiers n' ont pas pu être intégré à l' ImageList !" m%=message_information_ok(mes$) end_if end_sub
' ------------------------------------------------------------------------------
sub PreviewPicture() dim_local res%,par$,bmp$,ind% par$ = string$(255," ") ind% = dll_call3("GetTreeViewInformation",TV%,2,adr(par$)) par$ = trim$(par$) ind% = ind%-1 res% = dll_call5("ExtractImageFromImageList",IL%,ind%,0,1,0) clipboard_paste Pict% caption AlphPict%,"("+str$(ind%)+") "+par$ end_sub
' ------------------------------------------------------------------------------
sub Quitter() dim_local res% res% = dll_call1("KillProcessByHandle",handle(0)) end_sub * Nécessite KGF.dll | |
| | | Contenu sponsorisé
| Sujet: Re: Mon "ImageList Creator" | |
| |
| | | | Mon "ImageList Creator" | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |