Galeriemaker

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
romartens
Beiträge: 57
Registriert: 23.03.2005 19:55
Wohnort: dortmund

Beitrag von romartens »

jemand ne idee
will hier ne abfrage haben ob der abbrechen button gedrückt wurde oder kann man das auch mit nem thread lösen!

Code: Alles auswählen

 
        For a=0 To bildzahl-1
          bild$=GetGadgetItemText(#listicon_0,a,0)
          bildpfad$=Dateiname$+bild$
          LoadImage(a,bildpfad$)
          posit=GetGadgetState(#combo_0)
          If posit=0
            handle=ResizeImage(a,400,300)
          ElseIf posit=1
            handle=ResizeImage(a,640,480)
          ElseIf posit=2
            handle=ResizeImage(a,800,600)
          EndIf
          
          galerie$=galpfad$+"Bilder/"+bild$
          SaveImage(a,galerie$,#PB_ImagePlugin_JPEG,10 )
          handle=ResizeImage(a,120,90)
          galerie2$=galpfad$+"Thumbs/"+bild$
          SaveImage(a,galerie2$,#PB_ImagePlugin_JPEG,10 )
          
          SetGadgetState(#progbar_0,a)
        Next a
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

setz einfach an den Anfang:
WindowEvent()
If EventGadgetId()=#Abort
Break
EndIf

müsste eigentlich funktionieren
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
Benutzeravatar
romartens
Beiträge: 57
Registriert: 23.03.2005 19:55
Wohnort: dortmund

thread

Beitrag von romartens »

habs mit nem thread gelöst geht auch

Code: Alles auswählen

Procedure galerieerstellen(0)
   If CreateGadgetList(WindowID())
        bildzahl=CountGadgetItems(#listicon_0)
        
        ProgressBarGadget(#progbar_0,400,400,250,20,0,bildzahl-2,#PB_ProgressBar_Smooth)
        
      
      EndIf
      HideGadget(#progbar_0,0)
    DisableGadget(#button_3,0)



      galtitel$=GetGadgetText(#stringgad_0)
      galbesch$=GetGadgetText(#stringgad_1)
      galpfad$=GetGadgetText(#stringgad_2)
      pos=GetGadgetState(#combo_0)
      aufl$=GetGadgetItemText(#combo_0,pos,0)
      If dateiname$=""
        mess=MessageRequester("Fehler","Sie haben keine Bilder geladen!",#PB_MessageRequester_Ok)
        HideGadget(#progbar_0,1)
        
      Else
        
        CreateDirectory(galpfad$+"Bilder")
        CreateDirectory(galpfad$+"Thumbs")
        CreateDirectory(galpfad$+"Html")
        bildzahl=CountGadgetItems(#listicon_0)
        DisableGadget(#button_1,1)
        
        For a=0 To bildzahl-1
          bild$=GetGadgetItemText(#listicon_0,a,0)
          bildpfad$=Dateiname$+bild$
          LoadImage(a,bildpfad$)
          posit=GetGadgetState(#combo_0)
          If posit=0
            handle=ResizeImage(a,400,300)
          ElseIf posit=1
            handle=ResizeImage(a,640,480)
          ElseIf posit=2
            handle=ResizeImage(a,800,600)
          EndIf
          
          galerie$=galpfad$+"Bilder/"+bild$
          SaveImage(a,galerie$,#PB_ImagePlugin_JPEG,10 )
          handle=ResizeImage(a,120,90)
          galerie2$=galpfad$+"Thumbs/"+bild$
          SaveImage(a,galerie2$,#PB_ImagePlugin_JPEG,10 )
          
          SetGadgetState(#progbar_0,a)
        Next a
        
        HideGadget(#progbar_0,1)
       
        readwrite=OpenFile(#datei_1, galpfad$+"html/index.html")
        If readwrite=0
          Debug "error"
        EndIf
         DisableGadget(#button_1,0)
        Fertig=MessageRequester("Meldung:","Die Html-Galerie wurde erstellt!",#PB_MessageRequester_Ok)
      EndIf
      DisableGadget(#button_3,1)
      EndProcedure
das ist die procedure

und das die abfrage

Code: Alles auswählen

ElseIf gadgetid=#button_1
    thid = CreateThread(@galerieerstellen(), 0)


 ElseIf gadgetid=#button_3
    KillThread(thid)
    DisableGadget(#button_3,1)
    DisableGadget(#button_1,0)
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Threads sind halt von Natur aus ein bischen unsicher. Wenn es sich vermeiden lässt würde ich sicherlich die threadlose Variante bevorzugen.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Antworten