Hab einen UraltCode gefunden und schnell auf 4.4 geupdatet
ist seeehr Quick'n'Durty, aber tut sein Zweck, kannst ja anpassen ^^
OpenWindow(0,0,0,400,400,"Thumbnail Gadget by Adra",#PB_Window_ScreenCentered)
Path$ = PathRequester("BilderOrdner markieren","")
UsePNGImageDecoder()
UseJPEGImageDecoder()
AllowedFiles$ = "JPG|JPEG|PNG|BMP"
ExamineDirectory(0,Path$,"*.*")
#MaxPics = 100
While NextDirectoryEntry(0)
If FindString(AllowedFiles$,UCase(GetExtensionPart(DirectoryEntryName(0))),0)
LoadImage(ImageCounter,Path$+DirectoryEntryName(0))
ImageCounter + 1
If ImageCounter>#MaxPics
CreateImage(99,100,100,32)
StartDrawing(ImageOutput(100))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(20,20,"OverFlow",RGB(255,0,0))
StopDrawing()
Break
EndIf
EndIf
Wend
X = 50
Y = 50
Width = 300
Height = 300
Thumbnail = 100
NewList Selected()
LoadFont(0,"Verdana",12)
ScrollBarGadget(0,X+Width,Y,20,Height,0,(ImageCounter-1)/(Width/Thumbnail),10,#PB_ScrollBar_Vertical)
Repeat
ev=WaitWindowEvent()
StartDrawing(WindowOutput(0))
ToDisplay = Scroll
DrawingMode(#PB_2DDrawing_Outlined)
Box(X-1,Y-1,Width+2,Height+2)
For ToDisplayY = 0 To Height/Thumbnail - 1
For ToDisplayX = 0 To Width/Thumbnail - 1
If IsImage(ToDisplay)
DrawImage(ImageID(ToDisplay),X+ToDisplayX*Thumbnail,Y+ToDisplayY*Thumbnail,Thumbnail,Thumbnail)
Box(X+ToDisplayX*Thumbnail,Y+ToDisplayY*Thumbnail,Thumbnail,Thumbnail)
If WindowMouseX(0)>X+ToDisplayX*Thumbnail And WindowMouseX(0)<X+ToDisplayX*Thumbnail+Thumbnail
If WindowMouseY(0)>Y+ToDisplayY*Thumbnail And WindowMouseY(0)<Y+ToDisplayY*Thumbnail+Thumbnail
Box(X+ToDisplayX*Thumbnail,Y+ToDisplayY*Thumbnail,Thumbnail,Thumbnail,RGB(255,255,0))
If GetAsyncKeyState_(#VK_LBUTTON)
While GetAsyncKeyState_(#VK_LBUTTON) : Delay(1) : Wend
Deleted=0
ForEach Selected()
If Selected()=(Scroll+ToDisplayY)*(Width/Thumbnail)+ToDisplayX
DeleteElement(Selected())
Deleted=1
EndIf
Next
If Not Deleted
AddElement(Selected()) : Selected()=(Scroll+ToDisplayY)*(Width/Thumbnail)+ToDisplayX
EndIf
EndIf
EndIf
EndIf
ForEach Selected()
If Selected()=(Scroll+ToDisplayY)*(Width/Thumbnail)+ToDisplayX
DrawingMode(0)
Box(X+ToDisplayX*Thumbnail+Thumbnail-20,Y+ToDisplayY*Thumbnail+5,15,15,RGB(255,255,255))
Box(X+ToDisplayX*Thumbnail+Thumbnail-18,Y+ToDisplayY*Thumbnail+7,11,11,RGB(55,55,55))
DrawingMode(#PB_2DDrawing_Transparent|#PB_2DDrawing_Outlined)
DrawingFont(FontID(0))
DrawText(X+ToDisplayX*Thumbnail+Thumbnail-18,Y+ToDisplayY*Thumbnail+4,"X",RGB(255,255,255))
Box(X+ToDisplayX*Thumbnail,Y+ToDisplayY*Thumbnail,Thumbnail,Thumbnail,RGB(255,255,255))
Box(X+ToDisplayX*Thumbnail+2,Y+ToDisplayY*Thumbnail+2,Thumbnail-4,Thumbnail-4,RGB(0,255,0))
Box(X+ToDisplayX*Thumbnail+4,Y+ToDisplayY*Thumbnail+4,Thumbnail-8,Thumbnail-8,RGB(255,0,0))
DrawingMode(#PB_2DDrawing_Outlined)
EndIf
Next
ToDisplay+1
Else
DrawingMode(0)
Box(X+ToDisplayX*Thumbnail,Y+ToDisplayY*Thumbnail,Thumbnail,Thumbnail,RGB(152,152,152))
EndIf
Next
Next
StopDrawing()
If ev=#PB_Event_Gadget
Select EventGadget()
Case 0
scroll=GetGadgetState(0)*(Width/Thumbnail)
EndSelect
EndIf
Delay(1)
Until ev=#PB_Event_CloseWindow
Hoffe das hilft, auch wenns n sehr schlechter Code is
(dafür is er glaub ich auch auf Linux nutzbar ) |