bildvorschau

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
dllfreak2001
Beiträge: 2925
Registriert: 07.09.2004 23:44
Wohnort: Bayern

bildvorschau

Beitrag 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.
I´a dllfreak2001
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag 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.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

Passt das nicht eher zu Code, Tipps und Tricks?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo, RSB hat nur eingeschränkten zugriff...

*bastel*
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten