Seite 1 von 1

bildvorschau

Verfasst: 19.08.2007 16:28
von dllfreak2001

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 ist ein slider mit dem man zoomen kann wenn alle bilder vorgeladen wurden.

unten links der button ist zum wechseln des ordners.

fand das vorhin auf der Platte und den Rest kennt ihr ja, macht was draus.

Verfasst: 19.08.2007 16:33
von Vermilion
Mh, naja... lässt sich jetzt drüber streiten ob nützlich oder nicht... aber schlechtes will ich nich sagen, hast ja produktiv gearbeitet <) (Um es so auszudrücken)

Is doof, dass die Bilder alle in das Viereck gezerrt werden.

Verfasst: 19.08.2007 17:10
von RSBasic
Passt das nicht eher zu Code, Tipps und Tricks?

Verfasst: 19.08.2007 17:25
von ts-soft
RSBasic hat geschrieben:Passt das nicht eher zu Code, Tipps und Tricks?
Ist es nicht die Aufgabe eines "quasiModo", dieses dann zu
verschieben? Und, ja, dies gehört eher in Code, Tipps und Tricks!

Verfasst: 19.08.2007 17:55
von RSBasic
@ts-soft
Hi TS-Soft :)
Jo das stimmt, aber das ist leider nicht meine Abteilung :)
Nur in der Laberecke, Bugs und PureBasic 4.0

Verfasst: 19.08.2007 18:44
von Kaeru Gaman
yo, RSB hat nur eingeschränkten zugriff...

*bastel*