Programm beenden

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
romartens
Beiträge: 57
Registriert: 23.03.2005 19:55
Wohnort: dortmund

Programm beenden

Beitrag von romartens »

habe folgendes Problem
mein programm wird nicht komplet beendet kann mir jemand helfen
das programm bleibt im taskmanager!
common:

Code: Alles auswählen

; PureBasic Visual Designer v3.90 build 1361



;- Window Constants
;
Enumeration
#Window_0
EndEnumeration

;- Gadget Constants
;
LoadFont(0,"Arial",10,#PB_Font_Bold )
Enumeration
#ListIcon_0
#Frame3D_0
#Button_0
#button_1
#button_2
#imagegad_0
#textgad_0
#textgad_1
#textgad_2
#textgad_3
#textgad_4
#stringgad_0
#stringgad_1
#stringgad_2
#combo_0
#progbar_0
EndEnumeration
;proceduren--------------------
Procedure.f imagefaktor(breite,hoehe)
wert.f=hoehe/breite
ProcedureReturn wert
EndProcedure
Procedure.f filegroesse(wert1,wert2)
wert.f=wert1/wert2
ProcedureReturn wert
EndProcedure

;----------------------------
;- Fonts
LoadImage(0,"bmps/1.bmp")
LoadImage(1,"bmps/skin.bmp")
Global FontID1
FontID1 = LoadFont(1, "Arial", 10)
Global FontID2
FontID2 = LoadFont(2, "Arial", 10, #PB_Font_Bold)

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 216, 0, 684, 500,  #PB_Window_SystemMenu |#PB_Window_ScreenCentered| #PB_Window_TitleBar , "Jpegviewer noch nicht fertig für gallerytool")
    If CreateGadgetList(WindowID())
      
      ;- schaltflächen erstellen-------------------------------
      ListIconGadget(#ListIcon_0, 12, 56, 385, 210, "Dateiname", 200, #PB_ListIcon_GridLines)
      AddGadgetColumn(#ListIcon_0, 2, "Kilobyte", 60)
      AddGadgetColumn(#ListIcon_0, 3, "Breite", 60)
      AddGadgetColumn(#ListIcon_0, 4, "Höhe", 60)
      Frame3DGadget(#Frame3D_0, 412, 57, 250, 200, "")
      ButtonGadget(#Button_0, 13, 275, 110, 24, "Ordner Öffnen:", #PB_Button_Default)
      GadgetToolTip(#button_0,"Ordner mit ihren Bildern öffnen!")
      ButtonGadget(#Button_1, 480, 460, 120, 24, "Galerie erstellen", #PB_Button_Default)
      ButtonGadget(#Button_2, 352, 460, 30, 20, "...", #PB_Button_Default)
      
      
      
      SetGadgetFont(#Button_0, FontID2)
      ImageGadget(#imagegad_0,437,85,100,100,UseImage(0))
      TextGadget(#textgad_0,412,50,190,20,"Bild kann nicht angezeigt werden!")
      TextGadget(#textgad_1,18,320,80,20,"Galerietitel:")
      TextGadget(#textgad_2,03,350,90,20,"Beschreibung:")
      TextGadget(#textgad_3,13,460,90,20,"Speicherort:")
      TextGadget(#textgad_4,400,320,80,20,"Bildgröße:")
      StringGadget(#stringgad_0,100,320,250,20,"")
      StringGadget(#stringgad_1,100,350,250,100,"", #PB_String_Multiline)
      StringGadget(#stringgad_2,100,460,250,20,"")
      ComboBoxGadget(#combo_0,480,320,120,100)
      GadgetToolTip(#combo_0,"Hier wird die Größe der Bilder eingestellt die Sie sehen wenn die Vorschaubilder angeklickt werden!")
      AddGadgetItem(#combo_0,0,"400pixel * 300pixel")
      AddGadgetItem(#combo_0,1,"640pixel * 480pixel")
      AddGadgetItem(#combo_0,2,"800pixel * 600pixel")
      
      ;-schaltflächen ende------------------------------------------
      
      HideGadget(#textgad_0,1)
    EndIf
  EndIf
EndProcedure
galeriebeta:

Code: Alles auswählen

; PureBasic Visual Designer v3.90 build 1361
UseJPEGImageDecoder()
UseJPEGImageEncoder()
IncludeFile "Common.pb"
open_window_0()
SetGadgetFont(#textgad_1,UseFont(0))
SetGadgetFont(#textgad_2,UseFont(0))
SetGadgetFont(#textgad_3,UseFont(0))
SetGadgetFont(#textgad_4,UseFont(0))
SetGadgetFont(#button_1,UseFont(0))
HideWindow(#window_0,1)
ProcessIDServer.l
hTargetSem.l = CreateSemaphore_(0, 0, 1, "SPT") ; semaphore erstellen
If hTargetSem <> 0 ; prüfen ob semaphor schon im system vorhanden
  If GetLastError_() = #ERROR_ALREADY_EXISTS ; semaphore is schon im system vorhanden
    MessageRequester("Fehler","Diese Anwendung wurde bereits gestartet!",0)
    End
  EndIf
EndIf
HideWindow(#window_0,0)


Repeat
  
  Event = WaitWindowEvent()
  type=EventType()
  
  
  
  If Event = #PB_EventGadget
    GadgetID = EventGadgetID()
    
    If GadgetID = #ListIcon_0
      
      
    ElseIf GadgetID = #Button_0
      HideGadget(#textgad_0,1)
      ClearGadgetItemList(#listicon_0)
      zaehler=0
      DateiName$ = PathRequester("Verzeichnis", "c:\")
      If ExamineDirectory(0,Dateiname$,"*.jpg")
        Repeat
          FileType = NextDirectoryEntry()
          If FileType
            
            
            AddGadgetItem(#listicon_0,-1,DirectoryEntryName())
            texte$=GetGadgetItemText(#listicon_0,zaehler,0)
            imgadr$=dateiname$+texte$
            
            filekb.f = FileSize(imgadr$)
            
            SetGadgetItemText(#listicon_0,zaehler,StrF(filegroesse(filekb,1024),2),1)
            
            
            zaehler=zaehler+1
            
            
           
          EndIf
        Until FileType = 0
      EndIf
      
    ElseIf gadgetid=#button_1
      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)
      
      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)
      Else
        
        CreateDirectory(galpfad$+"Bilder")
        CreateDirectory(galpfad$+"Thumbs")
        CreateDirectory(galpfad$+"Html")
        bildzahl=CountGadgetItems(#listicon_0)
        For a=0 To bildzahl-1
          bild$=GetGadgetItemText(#listicon_0,a,0)
          bildpfad$=Dateiname$+bild$
          LoadImage(a,bildpfad$)
          handle=ResizeImage(a,400,300)
          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)
      EndIf
      
      
    ElseIf gadgetid=#button_2
      DateiName2$ = PathRequester("Verzeichnis", "c:\")
      SetGadgetText(#stringgad_2,dateiname2$)
    EndIf
    
    
    If type=#PB_EventType_LeftClick And Gadgetid=#listicon_0
      reihe=GetGadgetState(#listicon_0)
      
      If reihe=-1
      Else
        
        text$=GetGadgetItemText(#listicon_0,reihe,0)
        imgadr$=Dateiname$+text$
        FreeGadget(#imagegad_0)
        LoadImage(reihe,imgadr$)
        SetGadgetItemText(#listicon_0,reihe,Str(ImageWidth()),2)
        SetGadgetItemText(#listicon_0,reihe,Str(ImageHeight()),3)
        If CreateGadgetList(WindowID())
          hoehe=ImageHeight()
          breite=ImageWidth()
          
          
          faktor.f=imagefaktor(hoehe,breite)
          handle=ResizeImage(reihe,150*faktor,150)
          If ImageWidth()>200 Or ImageHeight()>200
            HideGadget(#textgad_0,0)
          Else
            HideGadget(#textgad_0,1)
            ImageGadget(#imagegad_0,430,90,180,180,UseImage(reihe))
            
            SetGadgetState(#imagegad_0,handle)
          EndIf
          
        EndIf
        
        
      EndIf
      
    EndIf
    
    
  EndIf
  
Until Event = #PB_EventCloseWindow

End
;
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Evtl. das hier

Code: Alles auswählen

hTargetSem.l = CreateSemaphore_(0, 0, 1, "SPT") ; semaphore erstellen 
am Ende des Programms auch wieder freigeben ?
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Antworten