ThumbnailMaker v.2.1 #buggy# HILFE!!!

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

ThumbnailMaker v.2.1 #buggy# HILFE!!!

Beitrag von benpicco »

Jaja, ich hab mal meinen alten Thumbnailmaker ausgebuddelt, als ich ihn gemacht habe, hatte ich noch keine Ahnung von LinkedLists...
Das hab ich geändert und ein paar neue Funktionen eingebaut. Er sieht (leider) noch immer so aus wie die alte Version, naja, es ist etwas unübersichtlicher geworden, weil die neuen Funktionen Platz brauchten...
(andererseits soll man auch alles auf einen Blick haben, ohne groß Einstellungen suchen zu müssen...) Naja, bevor ich hier meine ganze Lebensgeschichte erzähe, hier der

Code: Alles auswählen

;special thanks to Christi and the whole PB comunity
#jmg_Edition=#False
NewList error.s()
OnErrorGosub(?error)
Procedure.s GetAppDir() 
  FullPath.s = Space(360) 
  DLL = OpenLibrary(#PB_Any, "Kernel32") 
  CallFunction(DLL, "GetModuleFileNameA", CallFunction(DLL, "GetModuleHandleA", 0), @FullPath, 360) 
  CloseLibrary(DLL) 
  FullPath = GetPathPart(FullPath) 
  If Right(FullPath, 1) <> "\" : FullPath + "\" : EndIf 
  ProcedureReturn FullPath 
EndProcedure 
Procedure.s html_hex(color.l)
  red$= LSet(Hex(Red(color)),2,"0") 
  green$= LSet(Hex(Green(color)),2,"0") 
  blue$= LSet(Hex(Blue(color)),2,"0") 
  ProcedureReturn "#"+red$+green$+blue$
EndProcedure
Procedure scroll(window)
  Protected text$
  Protected merk$
  Repeat 
    text$=GetWindowTitle(window)
    merk$=Left(text$,1)
    text$=Right(text$,Len(text$)-1)+merk$
    Delay(100)
    SetWindowTitle(window,text$)
  ForEver
EndProcedure

Enumeration
  #Window_0
EndEnumeration
Global pics.w,anz.w,seite.w
Global Format.s, position.s,installpfad.s, path.s,verz.s
Global farbe.l,textfarbe.l, tablefarbe.l,x.l
Global bps.f
Global result.b, noscroll.b
NewList text.s()

;- MenuBar Constants
;
Enumeration
  #MenuBar_0
EndEnumeration


;- Gadget Constants
;
Enumeration
  #asstnt
  #asstnt_txt
  #Text_1
  #Text_2
  #Frame3D_1
  #Text_4
  #Text_5
  #Text_6
  #Hoehe
  #breite
  #anderung
  #select
  #Text_7
  #Text_8
  #zeilen
  #spalten
  #Text_9
  #titel
  #Text_10
  #Datei
  #Text_12
  #border
  #vor
  #nach
  #erstellen
  #clr1
  #clr2
  #clr3
  #format
  #colour
  #rahmen
  #text_r
  #pos_t
  #pos1
  #pos2
  #pos3
  #maxpics
  #picsges
  #warning
  #pfad
  #pfadwahl
  #pfad_t
  #info1
  #info2
  #progress
  #fontfarbe
  #bildtext
  #maxbild
  #text_11
  #seiten
  #info3
  #qualwal
  #qualitat
  #qtxt
  #endbildX
  #endbildY
  #endbiltxtX
  #endbiltxtY
  #vorq
  #vqtxt
  #head
  #hinfo
  #vorschau
  #back
  #forward
  #erase
  #images
  #image
  #global
  #Properties
  #pProperties
  #inc_size
  #name
  #jmg
  #textprev
  #table_bg
  #big_v
  #big_n
  #big_h
  #text
  #editor
  #br
  #load
EndEnumeration

;- StatusBar Constants
;
Enumeration
  #StatusBar_0
EndEnumeration

Structure images
  source.s
  sizeX.w
  sizeY.w
  pSizeX.w
  pSizeY.w
  Quality.b
  pQuality.b
  ;newDir.s
EndStructure
NewList images.images()

;- Fonts
;
Global FontID1
FontID1 = LoadFont(1, "DiagramTTHabsburg", 10)
Global FontID2
FontID2 = LoadFont(2, "Times New Roman", 10, #PB_Font_Bold)
Global FontID3
FontID3 = LoadFont(3, "Andy", 14, #PB_Font_Bold)
;error=4/zero
Procedure LoadText(Source$, GadgetID)
  ;Debug "Start"
  refresh=FileSize(Source$)/20
  file=ReadFile(#PB_Any,Source$)
  Repeat
    SetGadgetText(GadgetID,GetGadgetText(GadgetID)+Chr(ReadByte()))
    If x<=0 And noscroll=0
      StatusBarText(#text,0,Str((count/20.0)*100)+"%")
      WindowEvent()
      x=refresh   
      count+1
    EndIf
    x-1
  Until Eof(file)
  CloseFile(file)
  ;Debug "Ende"
EndProcedure
Procedure choose()
  OpenWindow(0,210,30,250,90,#PB_Window_ScreenCentered,"Modiwahl")
  CreateGadgetList(WindowID())
  Frame3DGadget(#Frame3D_1, 10, 0, 170, 60, "")
  TextGadget(#Text_1, 10, 10, 120, 20, "BenpiccoSoft´s", #PB_Text_Center)
  SetGadgetFont(#Text_1, FontID2)
  TextGadget(#Text_2,20, 30, 140, 20, "Thumbnail Maker", #PB_Text_Center)
  SetGadgetFont(#Text_2, FontID3)
  ButtonGadget(0,10,65,100,20,"Expertenmodus")
  ButtonGadget(1,120,65,100,20,"Assistent")
  Repeat
  Until WaitWindowEvent()=#PB_Event_Gadget
  ProcedureReturn EventGadgetID()
  CloseWindow(0)
EndProcedure
Procedure Open_Window_0()
  If OpenWindow(#Window_0, 100, 176, 1000, 390,  #PB_Window_MinimizeGadget | #PB_Window_SizeGadget|#PB_Window_ScreenCentered , "Thumbnail Maker    ")

    
    If CreateStatusBar(#StatusBar_0, WindowID())
    EndIf
    
    If CreateGadgetList(WindowID())
      TextGadget(#Text_1, 230, 10, 120, 20, "BenpiccoSoft´s", #PB_Text_Center)
      SetGadgetFont(#Text_1, FontID2)
      TextGadget(#Text_2, 220, 30, 140, 20, "Thumbnail Maker", #PB_Text_Center)
      SetGadgetFont(#Text_2, FontID3)
      Frame3DGadget(#Frame3D_1, 200, 0, 170, 60, "")
      TextGadget(#Text_4, 10, 10, 40, 20, "Höhe:")
      TextGadget(#Text_5, 10, 30, 40, 20, "Breite:")
      TextGadget(#Text_6, 10, 50, 50, 20, "Änderung:")
      SpinGadget(#Hoehe, 40, 10, 50, 15, 1, 1024)
      SpinGadget(#breite, 50, 30, 40, 15, 1, 768)
      SpinGadget(#anderung, 70, 50, 40, 15, 0, 30)
      ButtonGadget(#select, 460, 125, 100, 25, "Bilder wählen")
      ;ComboBoxGadget(#format,560,130,60,160, #PB_ComboBox_Editable)
      TextGadget(#Text_7, 440, 10, 40, 20, "Zeilen:")
      TextGadget(#Text_8, 440, 30, 40, 20, "Spalten:")
      SpinGadget(#zeilen, 480, 10, 40, 15, 1, 1000)
      SpinGadget(#spalten, 480, 30, 40, 15, 1, 100)
      TextGadget(#Text_9, 450, 60, 30, 20, "Titel:")
      StringGadget(#titel, 490, 60, 100, 20, "Bildvorschau")
      TextGadget(#Text_10, 420, 90, 60, 20, "Dateiname:")
      StringGadget(#Datei, 490, 90, 110, 20, "Bildvorschau.html")
      TextGadget(#Text_12, 10, 70, 70, 20, "Rahmendicke:")
      SpinGadget(#border, 80, 70, 50, 15, 0, 10)
      EditorGadget(#vor, 30, 130, 190, 150)
      SetGadgetText(#vor, "Hier können sie etwas Text eingeben, ")
      AddGadgetItem(#vor,1, "der vor der Bildertabelle gezeigt " )
      AddGadgetItem(#vor,2, "werden soll. Es kann sogar html sein.")
      EditorGadget(#nach, 240, 130, 190, 150)
      SetGadgetText(#nach, "Und hier können sie schreiben,")
      AddGadgetItem(#nach,1," was später unter den Bildern steht.")
      ButtonGadget(#erstellen, 460, 160, 110, 40, "Website erstellen!", #PB_Button_MultiLine)
      TextGadget(#Text_2, 220, 30, 140, 20, "Thumbnail Maker", #PB_Text_Center)
      SetGadgetFont(#Text_2, FontID3) 
      ButtonGadget(#clr1, 85,280,100,20,"löschen") 
      ButtonGadget(#clr2, 295,280,100,20,"löschen")
      DisableGadget(#erstellen,1)
      ButtonGadget(#colour, 10,90,90,20,"Hintergrundfarbe")
      TextGadget(#text_r, 135,70,90,15,"Bilderrahmendicke")
      SpinGadget(#rahmen, 223,70,50,15,0,10)
      TextGadget(#pos_t,460,210,150,15,"tabellenausrichtung")
      OptionGadget(#pos1,460,225,50,15,"rechts")
      OptionGadget(#pos2,460,240,50,15,"mitte")
      OptionGadget(#pos3,460,255,50,15,"links")
      StringGadget(#maxpics,540,20,30,15,Str(4*3), #PB_String_ReadOnly|#PB_String_Numeric     )
      StringGadget(#picsges,580,20,30,15,"0",#PB_String_ReadOnly)
      ;TextGadget(#warning, 530,37,100,20," ")
      TextGadget(#pfad_t, 105,90,100,20,"Bitte Zielpfad wählen")
      StringGadget(#pfad,210,90,120,20,"c:\")
      ButtonGadget(#pfadwahl, 335,90,80,20,"Durchsuchen")
      TextGadget(#info1, 540,8,30,15,"max")
      TextGadget(#info2, 575,8,30,15,"total")
      ProgressBarGadget(#progress, 145,350,300,10,0,200,#PB_ProgressBar_Smooth )
      ButtonGadget(#fontfarbe, 280,68,80,20,"Textfarbe")
      CheckBoxGadget(#bildtext, 500,500,90,15,"Text im Bild")
      TextGadget(#text_11,440,270,80,15,"Bilder pro Seite:")
      SpinGadget(#maxbild,520,270,50,15,1,10000)
      TextGadget(#info3,530,37,35,15,"Seiten:")
      StringGadget(#seiten,565,37,20,15,"no pics yet",#PB_String_ReadOnly)
      ListViewGadget(#images,810,10,170,300)
      CheckBoxGadget(#qualwal,20,300,200,15,"Bilder nicht ändern")
      TrackBarGadget(#qualitat,20,320,200,15,0,10,#PB_TrackBar_Ticks )
      TextGadget(#qtxt,10,280,50,15,"Qualität:")
      TextGadget(#endbiltxtX,230,300,80,15,"Originalbildweite")
      TextGadget(#endbiltxtY,230,320,80,15,"Originalbildhöhe")
      SpinGadget(#endbildX,320,300,50,15,1,10000)
      SpinGadget(#endbildY,320,320,50,15,1,10000)
      TextGadget(#vqtxt,100,10,100,15,"Vorschauqualität")
      TrackBarGadget(#vorq,95,30,100,15,0,10,#PB_TrackBar_Ticks)
      EditorGadget(#head,600,160,190,150)
      TextGadget(#hinfo,625,140,150,15,"Head Bereich editieren:")
      ButtonGadget(#clr3, 645,310,100,20,"löschen")
      ButtonGadget(#back,645,0,15,15,"<")
      ButtonGadget(#forward,660,0,15,15,">")
      ButtonGadget(#erase,750,130,50,20,"Löschen")
      ImageGadget(#image,615,10,100,100,0)
      ButtonGadget(#global,425,300,100,50,"Einstellungen auf alle Elemente anwenden",#PB_Button_MultiLine)
      CheckBoxGadget(#Properties,5,350,140,15,"Proportionen beibehalten")
      CheckBoxGadget(#pProperties,0,110,150,15,"Proportionen beibehalten")
      CheckBoxGadget(#inc_size,450,350,100,15,"Incluseive Größe")
      CheckBoxGadget(#name, 565,350,150,15,"Bilder mit Namen versehen")
      CompilerIf #jmg_Edition=#True
      CheckBoxGadget(#jmg,530,320,110,15,"JMG-Tabellenkopf")
      CompilerEndIf
      SetGadgetState(#Properties,1)
      SetGadgetState(#pProperties,1)
      ImageGadget(#textprev,365,68,150,20,0)
      ButtonGadget(#table_bg,200,110,100,17,"Tabellenhintergrund")
      ButtonGadget(#big_v,12,130,12,12,Chr(29))
      ButtonGadget(#big_n,222,130,12,12,Chr(29))
      ButtonGadget(#big_h,600,140,12,12,Chr(29))
    EndIf
  EndIf
EndProcedure
Procedure Open_Assistant()
  If OpenWindow(#Window_0,100,100,620,460,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget |#PB_Window_ScreenCentered,"Thumbnail Maker Wizzard      ")
   If CreateStatusBar(#StatusBar_0, WindowID())
  EndIf
  If CreateGadgetList(WindowID())
  TextGadget(#asstnt_txt,1,1,610,50,"loading...")
  ButtonGadget(#back,200,420,100,20,"zurück")
  ButtonGadget(#forward,300,420,100,20,"Weiter")
  CheckBoxGadget(#bildtext, 500,500,90,15,"Text im Bild")
  ProgressBarGadget(#progress, 145,410,300,10,0,200,#PB_ProgressBar_Smooth )
  PanelGadget(#asstnt,1,60,610,350)
  ;----------------
  AddGadgetItem(#asstnt,0,"Bilder")
  ButtonGadget(#select, 30,250,  100, 25, "Bilder wählen")
  TextGadget(#Text_4, 10, 10, 40, 20, "Höhe:")
  TextGadget(#Text_5, 10, 30, 40, 20, "Breite:")
  TextGadget(#Text_6, 10, 50, 50, 20, "Änderung:")
  SpinGadget(#Hoehe, 40, 10, 50, 15, 1, 1024)
  SpinGadget(#breite, 50, 30, 40, 15, 1, 768)
  SpinGadget(#anderung, 70, 50, 40, 15, 0, 30)
  ImageGadget(#image,200,10,100,100,0)
  TextGadget(#vqtxt,100,10,100,15,"Vorschauqualität")
  TrackBarGadget(#vorq,95,30,100,15,0,10,#PB_TrackBar_Ticks)
  ButtonGadget(#global,300,250,100,50,"Einstellungen auf alle Elemente anwenden",#PB_Button_MultiLine)
  CheckBoxGadget(#inc_size,300,305,150,15,"Incluseive Originalbildgröße")
  CheckBoxGadget(#pProperties,5,70,150,15,"Proportionen beibehalten")
  CheckBoxGadget(#qualwal,10,90,150,15,"Originalbilder nicht ändern")
  TrackBarGadget(#qualitat,10,180,150,15,0,10,#PB_TrackBar_Ticks )
  Frame3DGadget(#qtxt,5,110,160,100,"Qualität:")
  TextGadget(#endbiltxtX,10,130,80,15,"Originalbildweite")
  TextGadget(#endbiltxtY,10,145,80,15,"Originalbildhöhe")
  CheckBoxGadget(#Properties,10,165,140,15,"Proportionen beibehalten")
  SpinGadget(#endbildX,95,130,50,15,1,10000)
  SpinGadget(#endbildY,95,150,50,15,1,10000)
  ;ListViewGadget(#images,810,10,170,300) 
  SetGadgetState(#Properties,1)
  SetGadgetState(#pProperties,1)
  ListViewGadget(#images,435,5,160,300)
   ButtonGadget(#erase,240,270,50,20,"Löschen")
  ;----------------
  AddGadgetItem(#asstnt,1,"Tabelle")
  TextGadget(#Text_9, 450, 60, 30, 20, "Titel:")
  StringGadget(#titel, 490, 60, 100, 20, "Bildvorschau")
  TextGadget(#Text_10, 420, 90, 60, 20, "Dateiname:")
  StringGadget(#Datei, 490, 90, 110, 20, "Bildvorschau.html")
  ButtonGadget(#fontfarbe, 10,10,80,20,"Textfarbe")
  TextGadget(#text_11,100,10,80,15,"Bilder pro Seite:")
  SpinGadget(#maxbild,180,10,50,15,1,10000)
  TextGadget(#info3,270,10,35,15,"Seiten:")
  StringGadget(#seiten,320,10,20,15,"no pics yet",#PB_String_ReadOnly)
  TextGadget(#info1, 270,25,30,15,"max")
  TextGadget(#info2, 330,25,30,15,"total")
  StringGadget(#maxpics,300,25,30,15,Str(4*3), #PB_String_ReadOnly|#PB_String_Numeric)
  StringGadget(#picsges,355,25,30,15,"0",#PB_String_ReadOnly)
  ButtonGadget(#colour, 10,30,90,20,"Hintergrundfarbe")
  TextGadget(#text_r, 100,30,90,15,"Bilderrahmendicke")
  SpinGadget(#rahmen, 190,30,50,15,0,10)
  TextGadget(#pos_t,10,100,150,15,"Tabellenausrichtung")
  OptionGadget(#pos1,10,115,50,15,"rechts")
  OptionGadget(#pos2,10,130,50,15,"mitte")
  OptionGadget(#pos3,10,145,50,15,"links")
  TextGadget(#Text_12, 110, 50, 70, 20, "Rahmendicke:")
  SpinGadget(#border, 180, 50, 50, 15, 0, 10)
  ImageGadget(#textprev,5,68,150,20,0)
  ButtonGadget(#table_bg,10,50,100,17,"Tabellenhintergrund")
  CheckBoxGadget(#name, 110,70,150,15,"Bilder mit Namen versehen")
  CompilerIf #jmg_Edition=#True
  CheckBoxGadget(#jmg,110,90,110,15,"JMG-Tabellenkopf")
  CompilerEndIf
  TextGadget(#Text_7, 440, 10, 40, 20, "Zeilen:")
  TextGadget(#Text_8, 440, 30, 40, 20, "Spalten:")
  SpinGadget(#zeilen, 480, 10, 40, 15, 1, 1000)
  SpinGadget(#spalten, 480, 30, 40, 15, 1, 100)
  ;----------------
  AddGadgetItem(#asstnt,2,"Finish")
  ButtonGadget(#erstellen, 400, 100, 110, 40, "Website erstellen!", #PB_Button_MultiLine)
  TextGadget(#pfad_t, 210,10,100,20,"Bitte Zielpfad wählen")
  StringGadget(#pfad,310,10,120,20,"c:\")
  ButtonGadget(#pfadwahl, 435,10,80,20,"Durchsuchen")
  ButtonGadget(#big_h,500,155,12,12,Chr(29))
  EditorGadget(#head,315,170,190,150)
  TextGadget(#hinfo,340,145,150,15,"Head Bereich editieren:")
  ButtonGadget(#big_v,185,5,12,12,Chr(29))
  EditorGadget(#vor, 5, 20, 190, 150)
  SetGadgetText(#vor, "Hier können sie etwas Text eingeben, ")
  AddGadgetItem(#vor,1, "der vor der Bildertabelle gezeigt " )
  AddGadgetItem(#vor,2, "werden soll. Es kann sogar html sein.")
  ButtonGadget(#big_n,195,155,12,12,Chr(29))
  EditorGadget(#nach, 5, 170, 190, 150)
  SetGadgetText(#nach, "Und hier können sie schreiben,")
  AddGadgetItem(#nach,1," was später unter den Bildern steht.")
  ButtonGadget(#clr1, 210,155,100,20,"löschen") 
  ButtonGadget(#clr2, 210,300,100,20,"löschen")
  ButtonGadget(#clr3, 500,300,100,20,"löschen")
  CloseGadgetList()
  DisableGadget(#erstellen,1)
EndIf
EndIf
EndProcedure
Procedure UpdateExample()
  CreateImage(0,80,20)
  UseImage(0)
  StartDrawing(ImageOutput())
  Box(0,0,80,15,farbe)
  FrontColor(Red(textfarbe),Green(textfarbe),Blue(textfarbe))
  Box(0,15,80,5,tablefarbe)
  DrawingMode(4)
  Box(1,1,79,14,tablefarbe)
  DrawingMode(1)
  DrawText("Beispieltext")
  StopDrawing()
  SetGadgetState(#textprev,UseImage(0))
EndProcedure
Procedure TextInput(Gadget)
  OpenWindow(#text,100,100,300,300,#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget,"Texteditor",#Window_0)
  CreateMenu(0,WindowID(#text))
  CreateStatusBar(#text,WindowID(#text))
  AddStatusBarField(200)
  CreateGadgetList(WindowID(#text))
  EditorGadget(#editor,1,20,WindowWidth(),WindowHeight()-45)
  CheckBoxGadget(#br,5,2,240,15,"<br> automatisch am Ende der Zeile einfügen")
  ButtonGadget(#load,247,2,50,15,"Laden")
  SetGadgetText(#editor,GetGadgetText(Gadget))
  StatusBarText(#text,0,"Special Thanks to Christi")
  WindowEvent()
  Repeat
    Event=WaitWindowEvent()
    EventMenuID=EventMenuID()
    If EventMenuID=#PB_Shortcut_Return
      SetGadgetItemText(#editor,y,GetGadgetItemText(#editor,y,0)+"<br>"+Chr(13),0)
    EndIf
    If Event=#PB_Event_SizeWindow
      ResizeGadget(#editor,1,20,WindowWidth()-1,WindowHeight()-45)
      ResizeGadget(#load,WindowWidth()-GadgetWidth(#load)-2,2,GadgetWidth(#load),GadgetHeight(#load))
    ElseIf Event=#PB_Event_Gadget
      GadgetID=EventGadgetID()
      If GadgetID=#br
        If GetGadgetState(#br)=1
          AddKeyboardShortcut(#text,#PB_Shortcut_Return,#PB_Shortcut_Return)
        Else
          RemoveKeyboardShortcut(#text,#PB_Shortcut_Return)
        EndIf
      ElseIf GadgetID=#editor
        SendMessage_(GadgetID(#editor), #EM_EXGETSEL, 1, range.charrange) 
        CurrentLineIndex = SendMessage_(GadgetID(#editor), #EM_EXLINEFROMCHAR, 0, range\cpMin) 
        y = CurrentLineIndex ;+ 1 
        CurrentLineStartIndex = SendMessage_(GadgetID(#editor), #EM_LINEINDEX, CurrentLineIndex, 0) 
        x = range\cpMax - CurrentLineStartIndex + 1 
        StatusBarText(#text,0,"Spalte:"+Str(x)+" Zeile:"+Str(y+1))
      ElseIf GadgetID=#load
        file$=OpenFileRequester("Textdatei wählen","text.txt","Text Files|*.txt;*.html;*.htm;*.php|All Files|*.*",0)
        If file$
          StatusBarText(#text,0,"laden...")
          LoadText(file$,#editor)
          StatusBarText(#text,0,"Fertig!")
        EndIf
      EndIf
    
     
    EndIf
    
  Until Event=#PB_Event_CloseWindow
  SetGadgetText(Gadget,GetGadgetText(#editor))
  CloseWindow(#text)
EndProcedure
If choose()=0
  Open_Window_0()
  asst=0
  DisableGadget(#back,1)
  DisableGadget(#forward,1)
Else
  asst=1
  Open_Assistant()
  GadgetID=#asstnt
  DisableGadget(#back,1)
  DisableGadget(#forward,0)
EndIf
While WindowEvent():Wend

CompilerIf #jmg_Edition=#True
SetWindowTitle(#Window_0,Trim(GetWindowTitle(#Window_0))+" - Special JMG Edition     ")
CompilerEndIf
noscroll=1
If ProgramParameter()<>"noscroll"
  CreateThread(@scroll(),#Window_0)
  noscroll=0
EndIf
Format = "*.bmp"
farbe=RGB(255,255,255)
textfarbe=RGB(0,0,0)
tablefarbe=farbe
UpdateExample()
SetGadgetState(#endbildX,640)
SetGadgetState(#endbildY,480)
SetGadgetText(#endbildX,Str(GetGadgetState(#endbildX)))
SetGadgetText(#endbildY,Str(GetGadgetState(#endbildY)))
SetGadgetState(#qualitat,7)
DisableGadget(#qualitat,1)
SetGadgetState(#vorq,10)
SetGadgetState(#qualwal,1)
DisableGadget(#Properties,1)
DisableGadget(#endbildX,1)
DisableGadget(#endbildY,1)
DisableGadget(#erase,1)
;AddGadgetItem(#format,-1, "*.bmp")
;AddGadgetItem(#format,-1, "*.jpg")
;AddGadgetItem(#format,-1, "*.png")
;AddGadgetItem(#format,-1, "*.gif")
;AddGadgetItem(#format,-1, "*.tga")
;AddGadgetItem(#format,-1, "*.*")
AddStatusBarField(100)
StatusBarText(#StatusBar_0,0,"Version 2.1", #PB_StatusBar_Center | #PB_StatusBar_Raised )
;SetGadgetState(#format,0)
SetGadgetState (#Hoehe,120) : SetGadgetText(#Hoehe,Str(GetGadgetState(#Hoehe)))
SetGadgetState (#breite,180) : SetGadgetText(#breite,Str(GetGadgetState(#breite)))
SetGadgetState (#anderung,5) : SetGadgetText(#anderung,Str(GetGadgetState(#anderung)))
SetGadgetState (#border,1) : SetGadgetText(#border,Str(GetGadgetState(#border)))
SetGadgetState (#zeilen,4) : SetGadgetText(#zeilen,Str(GetGadgetState(#zeilen)))
SetGadgetState (#spalten,3) : SetGadgetText(#spalten,Str(GetGadgetState(#spalten)))
SetGadgetState(#rahmen,0): SetGadgetText(#rahmen,Str(GetGadgetState(#rahmen)))
SetGadgetState(#maxbild, 100):SetGadgetText(#maxbild, Str(GetGadgetState(#maxbild)))
SetGadgetState(#pos2,1)
position = "center"
farbe = RGB(255,255,255)
Procedure ShowImage(id)
  Protected merk
  merk=ListIndex(images())
  SelectElement(images(),id)
  LoadImage(0,images()\source)
  ResizeImage(0,images()\pSizeX,images()\pSizeY)
  UseJPEGImageEncoder()
  SaveImage(0,"temp.jpg",#PB_ImagePlugin_JPEG,GetGadgetState(#vorq))
  LoadImage(0,"temp.jpg")
  SetGadgetState(#image,UseImage(0))
  DeleteFile("temp.jpg")
  SelectElement(images(),merk)
EndProcedure

;EndIf
Procedure UpdateImage(id)
  Protected merk
  merk=ListIndex(images())
  SelectElement(images(),id)
  images()\sizeX=GetGadgetState(#endbildX)
  images()\sizeY=GetGadgetState(#endbildY)
  images()\pSizeX=GetGadgetState(#breite)
  images()\pSizeY=GetGadgetState(#Hoehe)
  images()\Quality=GetGadgetState(#qualitat)
  images()\pQuality=GetGadgetState(#vorq)
  SelectElement(images(),merk)
  ShowImage(merk)
EndProcedure
Procedure UpdateSpin()
  SetGadgetText(#Hoehe,Str(GetGadgetState(#Hoehe)))
  SetGadgetText(#breite,Str(GetGadgetState(#breite)))
  SetGadgetText(#anderung,Str(GetGadgetState(#anderung)))
  SetGadgetText(#border,Str(GetGadgetState(#border)))
  SetGadgetText(#zeilen,Str(GetGadgetState(#zeilen)))
  SetGadgetText(#spalten,Str(GetGadgetState(#spalten)))
  SetGadgetText(#rahmen,Str(GetGadgetState(#rahmen)))
  SetGadgetText(#maxbild, Str(GetGadgetState(#maxbild)))
  SetGadgetText(#endbildX,Str(GetGadgetState(#endbildX)))
  SetGadgetText(#endbildY,Str(GetGadgetState(#endbildY)))
EndProcedure
;DisableGadget(#select,1)
AddKeyboardShortcut(#Window_0,#PB_Shortcut_Delete,#PB_Shortcut_Delete)
;- Hauptschleife
If asst=1
Goto predefinedgadgetid
EndIf
Repeat
  back: 
If GetGadgetState(#maxbild) > pics
  SetGadgetState(#maxbild, pics)
EndIf

  Event = WaitWindowEvent()
  ;MenuID=MenuID()
  If Event = #PB_EventMenu
    
   
    MenuID = EventMenuID()
    
    
    
  EndIf
  
  If Event = #PB_EventGadget
    
    GadgetID = EventGadgetID()
    UpdateSpin()
    predefinedgadgetid:
    ;-images
    If GadgetID = #images And GetGadgetState(#images) >-1
    ;UpdateSpin()
    SelectElement(images(),GetGadgetState(#images))
    SetGadgetState(#endbildX,images()\sizeX)
    SetGadgetState(#endbildY,images()\sizeY)
    SetGadgetState(#breite,images()\pSizeX)
    SetGadgetState(#Hoehe,images()\pSizeY)
    SetGadgetState(#qualitat,images()\Quality)
    SetGadgetState(#vorq,images()\pQuality)
    WindowEvent()
    ShowImage(ListIndex(images())) 
    UpdateSpin()
    endindex=GetGadgetState(#images)
    ;GadgetID=0
    ;UpdateImage(ListIndex(images()))
    ;While WindowEvent():Wend
    ElseIf GadgetID = #Hoehe
      SetGadgetText(#Hoehe,Str(GetGadgetState(#Hoehe))) 
      If GetGadgetState(#images)>-1
        If GetGadgetState(#pProperties)=1
          SelectElement(images(),GetGadgetState(#images))
          SetGadgetState(#breite,ValF(StrF((images()\pSizeX/images()\pSizeY)))*GetGadgetState(#Hoehe))
        EndIf
        UpdateImage(GetGadgetState(#images))
      EndIf        
  ElseIf GadgetID = #breite
    SetGadgetText(#breite,Str(GetGadgetState(#breite))) 
    If GetGadgetState(#images)>-1
      If GetGadgetState(#pProperties)=1
        SelectElement(images(),GetGadgetState(#images))
        SetGadgetState(#Hoehe,ValF(StrF((images()\pSizeY/images()\pSizeX)))*GetGadgetState(#breite))
      EndIf
      UpdateImage(GetGadgetState(#images))
    EndIf

ElseIf GadgetID = #erase Or Event=#PB_Shortcut_Delete
  result = MessageRequester("Waring", "Wirklich löschen?", #PB_MessageRequester_YesNo)
  If result=6 And GetGadgetState(#images)>-1
    SelectElement(images(),GetGadgetState(#images))
    DeleteElement(images(),1)
    RemoveGadgetItem(#images,GetGadgetState(#images))
    pics-1
    SetGadgetText(#picsges, Str(pics)) 
    
  EndIf
  
    
  
ElseIf GadgetID = #endbildX
  If GetGadgetState(#images)>-1
    SetGadgetText(#endbildX,Str(GetGadgetState(#endbildX))) 
    If GetGadgetState(#Properties)=1
      SelectElement(images(),GetGadgetState(#images))
      SetGadgetState(#endbildY,ValF(StrF((images()\sizeY/images()\sizeX)))*GetGadgetState(#endbildX))
    EndIf
    
      UpdateImage(GetGadgetState(#images))
    EndIf
  ElseIf GadgetID = #endbildY
    If GetGadgetState(#images)>-1
    SetGadgetText(#endbildY,Str(GetGadgetState(#endbildY)))  
    If GetGadgetState(#Properties)=1
      SelectElement(images(),GetGadgetState(#images))
      SetGadgetState(#endbildX,ValF(StrF((images()\sizeX/images()\sizeY)))*GetGadgetState(#endbildY))
    EndIf
    
      UpdateImage(GetGadgetState(#images))
    EndIf
  ElseIf GadgetID = #maxbild
    SetGadgetText(#maxbild,Str(GetGadgetState(#maxbild)))  
    mpx=Val(GetGadgetText(#maxpics))
    If GetGadgetState(#maxbild)>mpx
      SetGadgetState(#maxbild,mpx)
    EndIf
    
    bps=pics/GetGadgetState(#maxbild)
    If bps <> Int(bps)
      bps=Int(bps)+1
    EndIf
    SetGadgetText(#seiten,Str(bps))
  ElseIf GadgetID = #qualwal
    DisableGadget(#qualitat, GetGadgetState(#qualwal))
    DisableGadget(#endbildX, GetGadgetState(#qualwal))
    DisableGadget(#endbildY, GetGadgetState(#qualwal))
    DisableGadget(#Properties,GetGadgetState(#qualwal))
    ElseIf GadgetID = #anderung
      SetGadgetText(#anderung,Str(GetGadgetState(#anderung))) 
      
    ElseIf GadgetID = #select
      image$=OpenFileRequester("Bild auswählen","c:\","Grafik Files|*.bmp;*.jpg;*.png;*.tiff;*.tga|Bitmaps|*.bmp|JPEGs|*.jpg|TrueVision Targa|*.tga|Tiff|*.tiff|Alle Dateien|*.*",-1,#PB_Requester_MultiSelection)
      UsePNGImageDecoder()
      UseTGAImageDecoder()
      UseTIFFImageDecoder()
      UseJPEGImageDecoder()
      If CountList(images())
        LastElement(images())
        SetGadgetState(#images,ListIndex(images()))
      EndIf
      While image$ 
        If LoadImage(0,image$)
          pics = pics + 1 
          DisableGadget(#erase,0)
          DisableGadget(#erstellen,0)
          AddGadgetItem(#images,-1,GetFilePart(image$))
          AddElement(images())
          UseImage(0)
          images()\source=image$
          images()\sizeX=ImageWidth()
          images()\sizeY=ImageHeight()
          images()\pSizeX=GetGadgetState(#breite)
          images()\pSizeY=ValF(StrF((ImageHeight()/ImageWidth())))*GetGadgetState(#breite)
          images()\Quality=GetGadgetState(#qualitat)
          images()\pQuality=GetGadgetState(#vorq)
          ShowImage(ListIndex(images())) 
          SetGadgetState(#images,ListIndex(images()))
        Else
          ;AddGadgetItem(#error,-1,"Error opnening file "+image$)
        EndIf
        
        image$ = NextSelectedFileName() 
      Wend 
      SetGadgetState(#maxbild,Val(GetGadgetText(#zeilen))*Val(GetGadgetText(#spalten)))
      SetGadgetText(#picsges, Str(pics)) 
      SetGadgetText(#maxbild, Str(pics))
      bps=pics/GetGadgetState(#maxbild)
      If bps <> Int(bps)
        bps=Int(bps)+1
      EndIf
      SetGadgetText(#seiten,Str(bps))
      SetGadgetText(#maxpics,Str(GetGadgetState(#zeilen)*GetGadgetState(#spalten)*bps))
      If pics > Val(GetGadgetText(#zeilen))*Val(GetGadgetText(#spalten))
         SetGadgetState(#maxbild,Val(GetGadgetText(#zeilen))*Val(GetGadgetText(#spalten)))
      EndIf   
      
    ElseIf GadgetID = #spalten
      bps=pics/GetGadgetState(#maxbild)
      If bps <> Int(bps)
        bps=Int(bps)+1
      EndIf
      SetGadgetText(#maxpics,Str(Val(GetGadgetText(#zeilen))*Val(GetGadgetText(#spalten))))
      If pics > Val(GetGadgetText(#zeilen))*Val(GetGadgetText(#spalten))
         SetGadgetState(#maxbild,Val(GetGadgetText(#zeilen))*Val(GetGadgetText(#spalten)))
      Else
        ;SetGadgetText(#warning,"              ")
      EndIf
      
    ElseIf GadgetID = #zeilen
      bps=pics/Val(GetGadgetText(#maxbild))
      If bps <> Int(bps)
        bps=Int(bps)+1
      EndIf
      
      SetGadgetText(#maxpics,Str(Val(GetGadgetText(#zeilen))*Val(GetGadgetText(#spalten))))
      If pics > Val(GetGadgetText(#zeilen))*Val(GetGadgetText(#spalten))
        SetGadgetState(#maxbild,Val(GetGadgetText(#zeilen))*Val(GetGadgetText(#spalten)))
      Else
      ;SetGadgetText(#warning,"              ")
      EndIf  

      ElseIf GadgetID = #rahmen
      SetGadgetText(#rahmen,Str(GetGadgetState(#rahmen))) 
      
    ElseIf GadgetID = #titel
     
      
    ElseIf GadgetID = #Datei
    
    ;ElseIf GadgetID = #format
    ;SetGadgetText(1, Str(GetGadgetState(1)))
    ;Format = GetGadgetText(#format)
      
    ElseIf GadgetID = #border
      SetGadgetText(#border,Str(GetGadgetState(#border))) 
      
      
    ElseIf GadgetID = #vor
    
    ElseIf GadgetID=#global
      ForEach images()
      If GetGadgetState(#inc_size)=1
         images()\sizeX=GetGadgetState(#endbildX)
         images()\sizeY=GetGadgetState(#endbildY)
      EndIf
      images()\pSizeX=GetGadgetState(#breite)
      images()\pSizeY=GetGadgetState(#Hoehe)
      images()\Quality=GetGadgetState(#qualitat)
      images()\pQuality=GetGadgetState(#vorq)
    Next
      
    ElseIf GadgetID = #nach
    
    ElseIf GadgetID =#qualitat
      If GetGadgetState(#images)>-1
        UpdateImage(GetGadgetState(#images))
      EndIf    
    ElseIf    GadgetID = #vorq   
      If GetGadgetState(#images)>-1
        UpdateImage(GetGadgetState(#images))
      EndIf    
      
    ElseIf GadgetID = #colour
      nfarbe = ColorRequester(farbe)
      If nfarbe > -1 
      farbe=nfarbe
      UpdateExample()
      EndIf
    ElseIf GadgetID = #fontfarbe
      nfarbe = ColorRequester(textfarbe)
      If nfarbe >-1
      textfarbe=nfarbe
      UpdateExample()
    EndIf
  ElseIf GadgetID=#table_bg
    result=MessageRequester("Frage","Tabellenhintergrund dem Seitenhintergrund gleichsetzten?",#PB_MessageRequester_YesNoCancel)
    If result=6
      tablefarbe=farbe
    ElseIf result=7
      nfarbe=ColorRequester(tablefarbe)
      If nfarbe>-1
        tablefarbe=nfarbe
      EndIf
      UpdateExample()
    EndIf
    
      
     ElseIf GadgetID = #clr1
     ClearGadgetItemList(#vor)
     
  ElseIf GadgetID = #clr2
    ClearGadgetItemList(#nach)
  ElseIf GadgetID = #clr3
    ClearGadgetItemList(#head)
     
     ElseIf GadgetID = #pos1
     position="right"
     ElseIf GadgetID = #pos2
     position="center"
     ElseIf GadgetID = #pos3
     position="left"
      ElseIf GadgetID = #pfadwahl
      installpfad = PathRequester("Bitte Speicherpfad der Datei angeben",GetGadgetText(#pfad))
      If Len(installpfad)>0
      SetGadgetText(#pfad, installpfad)
      DisableGadget(#select,0)
      ElseIf GadgetID = #pfad
      installpfad = GetGadgetText(#pfad)
      DisableGadget(#select,0)

    EndIf
  ElseIf GadgetID=#big_v
    TextInput(#vor)
  ElseIf GadgetID=#big_n
    TextInput(#nach)
  ElseIf GadgetID=#big_h
    TextInput(#head)
       
      
    ElseIf GadgetID = #erstellen
    ;If GetGadgetState(#zeilen)*GetGadgetState(#spalten) <= pics
      Goto erstell
     ;Else
     ;MessageRequester("Error", "Nicht genügend bilder vorhanden um Tabelle vollständig auszufüllen. Bitte ändern sie die Zeilen oder Die Spalten!") 
      
    ;EndIf
    ElseIf asst=1 And GadgetID=#asstnt
      Select GetGadgetState(#asstnt)
        Case 0
          SetGadgetText(#asstnt_txt,"Nehmen sie hier Bildeinstelungen vor")
          DisableGadget(#back,1)
          DisableGadget(#forward,0)
        Case 1
          SetGadgetText(#asstnt_txt,"Definieren sie die Tabelle nach ihren Wünschen")
          DisableGadget(#back,0)
          DisableGadget(#forward,0)
        Case 2
          SetGadgetText(#asstnt_txt,"Nehmen sie abschließende Einstellungen vor")
          DisableGadget(#forward,1)
          DisableGadget(#back,0)
      EndSelect
    ElseIf asst=1 And GadgetID=#forward
      SetGadgetState(#asstnt,GetGadgetState(#asstnt)+1)
      GadgetID=#asstnt
      Goto predefinedgadgetid
    ElseIf asst=1 And GadgetID=#back
      SetGadgetState(#asstnt,GetGadgetState(#asstnt)-1) 
      GadgetID=#asstnt
      Goto predefinedgadgetid
  EndIf
  EndIf
Until Event = #PB_EventCloseWindow

End
;- Page generieren
erstell:
Z = 0
CreateDirectory(installpfad+GetGadgetText(#titel))
CompilerIf #jmg_Edition=#True
If GetGadgetState(#jmg)=1
  CreateDirectory(installpfad+"\jmg-pics")
  ExamineDirectory(1,GetAppDir()+"bilder\","*.*")
  Repeat
    UseDirectory(1)
    FileType = NextDirectoryEntry()
    If FileType
      FileName$ = DirectoryEntryName()
      If FileType = 1
        test= test+1
        ;MessageRequester("Test"+Str(test),"Test von "+GetAppDir()+"bilder\"+FileName$+" nach "+installpfad+"\"+FileName$)
        If CopyFile( GetAppDir()+"bilder\"+FileName$,installpfad+"\jmg-pics\"+FileName$)
        Else
          error=1
        EndIf
      EndIf
      
      
    EndIf
    
  Until FileType = 0 
  If error = 1
    MessageRequester("Error", "Fehler beim kopieren der JMG-Bilder")
  EndIf
EndIf
CompilerEndIf
UseJPEGImageDecoder()
UseTGAImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
UseJPEGImageEncoder()
bps=pics/GetGadgetState(#maxbild)
If bps <> Int(bps)
  bps=Int(bps)+1
EndIf
;MessageRequester("info","Seiten:"+Str(bps))

    ForEach images()
      SetGadgetState(#progress, ValF(StrF((ListIndex(images())/CountList(images()))))*100)
  
            ;CopyFile(images()\source, installpfad+GetGadgetText(#titel)+"\"+DirectoryEntryName())
              LoadImage(0,images()\source)
              ResizeImage(0, images()\pSizeX+GetGadgetState(#anderung),images()\pSizeY+GetGadgetState(#anderung))
              SaveImage(0, installpfad+GetGadgetText(#titel)+"\vorschau_"+Str(ListIndex(images()))+".jpg",#PB_ImagePlugin_JPEG,images()\pQuality)
              If GetGadgetState(#qualwal)=1
                LoadImage(0,images()\source)
                ResizeImage(0,images()\sizeX,images()\sizeY)
                SaveImage(0, installpfad+GetGadgetText(#titel)+"\bild_"+Str(ListIndex(images()))+".jpg",#PB_ImagePlugin_JPEG, images()\Quality)
              Else 
                CopyFile(images()\source,installpfad+GetGadgetText(#titel)+"\bild_"+Str(ListIndex(images()))+".jpg")
              EndIf
             
             
              
              
            
            

          Next 
          ;MessageRequester("test0", bilder(x-1))
          ;MessageRequester("test1",path+DirectoryEntryName() + " quelle")
          ;MessageRequester("test2",installpfad+GetGadgetText(#titel)+"\"+DirectoryEntryName() + " ziel")

seite=0  
Repeat
  seite=seite+1 
  If bps>1
    DeleteFile(installpfad+Str(seite)+GetGadgetText(#Datei))
    OpenFile(0,installpfad+Str(seite)+GetGadgetText(#Datei))
Else 
  DeleteFile(installpfad+GetGadgetText(#Datei))
  OpenFile(0,installpfad+GetGadgetText(#Datei))
EndIf

 ;UseFile(seite)
 WriteStringN("<html>")
 WriteStringN("<head>")
 WriteStringN("<meta name="+Chr(34)+"generator"+Chr(34)+" content="+Chr(34)+"Benpicco´s Thumbnail Maker"+Chr(34)+">")
 WriteStringN("<title>"+ GetGadgetText(#titel) + "</title>")
 WriteString(GetGadgetText(#head))
 WriteStringN("</head>")
 WriteStringN("<body bgcolor = "+Chr(34) +html_hex(farbe)+Chr(34) + " text="+Chr(34) +html_hex(textfarbe)+Chr(34) + ">")
 WriteStringN(GetGadgetText(#vor)+"<br>")
 WriteString("<div align="+position+">")
CompilerIf #jmg_Edition=#True
If GetGadgetState(#jmg) = 1
  WriteStringN("<table><tr><td>")
  ReadFile(1,"head.txt")
  Repeat
    UseFile(1)
    string$=ReadString()
    If string$="#!?titeldummy¿¡#"
      string$=GetGadgetText(#titel)
    EndIf
    UseFile(0)
    WriteStringN(string$)
  Until Eof(1)
   CloseFile(1)
   WriteStringN("<table border="+Chr(34) + GetGadgetText(#border) + Chr(34) +" width=100% bgcolor="+Chr(34) +html_hex(tablefarbe)+ Chr(34)+">")
   
Else
  WriteStringN("<table border="+Chr(34) + GetGadgetText(#border) + Chr(34) +" bgcolor="+Chr(34) +html_hex(tablefarbe)+ Chr(34)+">")
EndIf
CompilerElse
WriteStringN("<table border="+Chr(34) + GetGadgetText(#border) + Chr(34) +"bgcolor="+Chr(34) +html_hex(tablefarbe)+ Chr(34)+">")
CompilerEndIf

 For y = 1 To GetGadgetState(#zeilen)
  WriteStringN("<tr>")
  count=0
  For x = 1 To GetGadgetState(#spalten)
    If Z => (seite*GetGadgetState(#maxbild)) Or Z>pics-1 Or Z>CountList(images())
      Goto weiter
    EndIf
   
      SelectElement(images(),Z)
SetGadgetState(#progress, Int((((GetGadgetState(#zeilen)+GetGadgetState(#spalten))/Z)*100)+100))
 If GetGadgetState(#bildtext)=1
  WriteStringN("<div style="+Chr(34)+"position:absolute;"+Chr(34)+">")
EndIf
bild$=GetGadgetText(#titel)+"\bild_"+Str(Z)+".jpg"
bild_v$=GetGadgetText(#titel)+"\vorschau_"+Str(Z)+".jpg"
WriteStringN("<td><center><a href="+Chr(34)+bild$+Chr(34)+" target = "+Chr(34)+"_blank"+Chr(34)+"><img src="+Chr(34)+bild_v$+Chr(34)+"height = "+Chr(34)+Str(images()\pSizeY)+Chr(34)+" border="+GetGadgetText(#rahmen)+" width = "+Chr(34)+Str(images()\pSizeX)+Chr(34)+" alt="+Chr(34)+GetFilePart(bild$)+Chr(34)+"+ onMouseOver="+Chr(34)+"this.width ="+Chr(39)+Str(images()\pSizeX+GetGadgetState(#anderung))+Chr(39)+Chr(59)+" this.height = "+Chr(39)+ Str(images()\pSizeY+GetGadgetState(#anderung))+Chr(39)+ Chr(59)+Chr(34)+" onMouseOut = "+Chr(34)+"this.width="+Chr(39)+Str(images()\pSizeX)+Chr(39)+Chr(59)+" this.height="+Chr(39)+Str(images()\pSizeY)+Chr(39)+Chr(59)+Chr(34)+"></a></center></td>")

 ;If GetGadgetState(#bildtext) = 1
 ; textbild$=RemoveString(GetFilePart(bild$), GetExtensionPart(("."+bild$)),1) 
 ; WriteStringN( "<p style="+Chr(34)+"position:absolute; top:3%; left:25%; width:100%;"+Chr(34)+"><font size=2%>"+Chr(34)+textbild$+Chr(34)+"</font></div></p>")
 ;EndIf
Z=Z+1
count+1
Next
weiter:
WriteStringN("</tr>")
If GetGadgetState(#name)=1
  WriteStringN("<tr>")
  If Z-count=>0 And Z-count<=CountList(images()) 
  SelectElement(images(),Z-count)
  For x=1 To GetGadgetState(#spalten)
    If  x<=count
      WriteStringN("<td><center>"+GetFilePart(images()\source)+"</center></td>")
      NextElement(images()) 
    Else
      Break
    EndIf
  Next
EndIf
WriteStringN("</tr>")
EndIf
Next
WriteStringN("</table></div><br>")
CompilerIf #jmg_Edition=#True
If GetGadgetState(#jmg) = 1
  WriteStringN("</td></tr></table>")
EndIf
CompilerEndIf
 WriteStringN(GetGadgetText(#nach)+"<br>")

  If bps > 1
  WriteStringN("<p align="+Chr(34)+"center"+Chr(34)+">Seiten: ")
  For x = 1 To bps+0
    WriteStringN("<a href="+Chr(34)+Str(x)+GetGadgetText(#Datei)+Chr(34)+"> "+Str(x)+" </a>")
  Next
  WriteStringN("</p><div align="+Chr(34)+"right"+Chr(34)+"><small>Seite "+Str(seite)+" von "+Str(bps)+"</small></div>")
  EndIf
WriteStringN("</body></html>") 
CloseFile(0)
SetGadgetState(#progress,200)
Until seite=bps

MessageRequester("Sucess!", "Bildvorschau wurde erfolgreich erstellt!")
If bps>1
  RunProgram(installpfad+"1"+GetGadgetText(#Datei))
Else 
   RunProgram(installpfad+GetGadgetText(#Datei))
EndIf
 
Goto back

error:
AddElement(error())
error()=GetErrorDescription()+ " on Line "+Str(GetErrorLineNR())
errorreport$=""
ForEach error()
  errorreport$=errorreport$+error()+Chr(13)+Chr(10)
Next
Select MessageRequester("ERROR", "Es traten folgende Fehler auf:" + Chr(10) + errorreport$ + Chr(10) + "Programm weiter ausführen?", #MB_YESNO|#MB_ICONERROR)
  Case #IdYes
    Return
  Case #IdNo
    Goto mailme:
EndSelect
Return
mailme:
errorreport$=""
ForEach error()
  errorreport$=errorreport$+error()+"%0A"
Next
MessageRequester("Info","Bite setzten sie mich über diese Fehler in Kenntnis.")
RunProgram("mailto:benpicco@compuserve.de?subject=Bugreport_Thumbnailmaker&body=Fehlerbeschreibung:%0A"+errorreport$)
End
Achso, wem der Scrollende Titel stört, er lässt sich mit dem Parameter noscroll ausschalten.
kann man natürlich auch hier runterladen. (naja, besser hier...)
edit: peinlicher Fehler entfernt :oops:
Zuletzt geändert von benpicco am 01.10.2005 02:14, insgesamt 10-mal geändert.
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag von benpicco »

Hat jemand einen Bug gefunden oder fehlt eine nützliche Funktion?
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
dige
Beiträge: 1246
Registriert: 08.09.2004 08:53

Beitrag von dige »

Ich kann mit dem Teil überhaupt nix anfangen ... Du solltest erstmal
ein bischen die Oberfläche aufräumen
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag von benpicco »

Oberfläche ist jetzt aufgeräumt ^^
(Zumindest beim Assistenten)
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Benutzeravatar
benpicco
Beiträge: 391
Registriert: 01.10.2004 15:32
Wohnort: im Code
Kontaktdaten:

Beitrag von benpicco »

Ich hab grad einen seltsamen Bug: Wenn ich im Assistenten ein Bild wähle, resize und auf ein adereses klicke, ändert dieses auch die Größe! Und das merkwürdigdste: Im Expertenmodus gibt es dieses Problem nicht! Dabei benutzten beide die selben abfragen, es witd nur ein anderes Fenster geöffnet, die id ist gleich....
Ich hab mir schon alles nochmal angesehen, aber ich seh den Fehler einfach nicht :freak:
Johann Wolfgang von Geothe hat geschrieben:Wie dieses oder jenes Wort geschrieben wird, darauf kommt es doch eigentlich nicht an, sondern darauf, daß die Leser verstehen, was man damit sagen wollte.
Antworten