Code: Alles auswählen
;***DllFreak´s Picselect***
; ***28.10.2006***
UseJPEGImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
UseTGAImageDecoder()
Enumeration
#MainSize
#MainWindow
#MainMenu
#SelectDir
#MainScroll
EndEnumeration
ExamineDesktops()
deskw.l = DesktopWidth(0)
deskh.l = DesktopHeight(0)
rstart:
Global count.l, csize.b, fload.b, ldir.s
count = -1
bx.l = -1
by.l = 0
NewList picname.s()
ldir = PathRequester("Pfad auswählen...", "C:\")
;ldir = "C:\Windows\"
ExamineDirectory(0,ldir,"*.*")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
tfname.s = DirectoryEntryName(0)
textp.s = LCase(GetExtensionPart(tfname))
If textp = "jpg" Or textp = "tiff" Or textp = "tga" Or textp = "bmp" Or textp = "ico"
count + 1
AddElement(picname())
picname() = tfname
EndIf
EndIf
Wend
OpenWindow(#MainWindow,0,0,deskw-100,deskh-200,"DllFreak´s PicSelect",#PB_Window_MinimizeGadget|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(#MainWindow))
TrackBarGadget(#MainSize, 0, 0, 100, 20, 0, 112)
ButtonGadget(#SelectDir,0,0,20,20,"<<")
ScrollAreaGadget(#MainScroll,0,0,100,100,deskw,1000,0)
For x = 0 To count
CreateImage(x*2,32,32)
bx + 1
If bx > Round(deskw/32,0)-1:by + 1:bx = 0: EndIf
ButtonImageGadget(#MainScroll + 1 + x,bx*32,by*32,32,32,ImageID(x*2))
Next
SetGadgetAttribute(#MainScroll, #PB_ScrollArea_InnerHeight, (1+by)*32)
CloseGadgetList()
fload = 1
;-Standartvariablen deklarieren
Global quit.b, wevent.l, gevent.l
tx = -1
DisableGadget(#MainSize,1)
Repeat
If csize = 0 And fload = 0
wevent = WaitWindowEvent()
Else
wevent = WindowEvent()
EndIf
gevent = EventGadget()
Select wevent
Case #PB_Event_CloseWindow
quit = 1
Case #PB_Event_SizeWindow
ResizeGadget(#MainScroll,0,0,WindowWidth(#MainWindow),WindowHeight(#MainWindow)-20)
ResizeGadget(#MainSize,20,WindowHeight(#MainWindow)-20,WindowWidth(#MainWindow)-20,20)
ResizeGadget(#SelectDir,0,WindowHeight(#MainWindow)-20,20,20)
Case #PB_Event_Gadget
If gevent > #MainScroll And gevent <= #MainScroll + 1 + count
SelectElement(picname(), gevent - 1 - #Mainscroll)
RunProgram(ldir + picname())
EndIf
If gevent = #SelectDir
CloseWindow(#MainWindow)
Goto rstart
EndIf
If gevent = #MainSize
csize = 1
tx = -1
bx = - 1
by = 0
tsize.l = GetGadgetState(#MainSize)*2 + 32
For x = 0 To count
bx + 1
If bx > Round(deskw/tsize,0)-1:by + 1:bx = 0: EndIf
ResizeGadget(#MainScroll + 1 + x,bx*tsize,by*tsize,tsize,tsize)
SetGadgetState(#MainScroll + 1 + x,ImageID(x*2))
Next
SetGadgetAttribute(#MainScroll, #PB_ScrollArea_InnerHeight, (1+by)*tsize)
EndIf
EndSelect
boa.l + 1
If boa > 200 And (csize Or fload )
boa = 0
tx + 1
EndIf
If tx <= count And csize = 1 And fload = 0
If boa = 0
GrabImage(tx*2 + 1,tx*2,0,0,256,256)
ResizeImage(tx*2,tsize,tsize)
SetGadgetState(#MainScroll + 1 + tx,ImageID(tx*2))
EndIf
ElseIf tx <= count And csize = 0 And fload = 1
If boa = 0
SelectElement(picname(), tx)
LoadImage(tx*2+1, ldir + picname())
ResizeImage(tx*2+1, 256,256)
GrabImage(tx*2+1,tx*2,0,0,256,256)
ResizeImage(tx*2, 32,32)
SetGadgetState(#MainScroll + 1 + tx,ImageID(tx*2))
EndIf
Else
DisableGadget(#MainSize,0)
csize = 0
fload = 0
EndIf
Until quit = 1
End
unten links der button ist zum wechseln des ordners.
fand das vorhin auf der Platte und den Rest kennt ihr ja, macht was draus.