Gadget nicht sichtbar bei Fensteraufbau

Anfängerfragen zum Programmieren mit PureBasic.
Agent
Beiträge: 296
Registriert: 13.09.2004 11:28
Kontaktdaten:

Gadget nicht sichtbar bei Fensteraufbau

Beitrag von Agent »

Moin.

Ich habe in einem Programm ein Code-Segment, das ein Fenster öffnet. Hierbei werden verschiedene Gadgets dargestellt. Leider wird eines der Gadgets gar nicht dargestellt. Ich nehme an, ich übersehe etwas.

Kann jemand mal Hilfestellung leisten? Ich glaub ich seh vor lauter Wald die Bäume nicht o.O

Code: Alles auswählen

Enumeration
  ; JOB-FENSTER
  #job_string_title
  #job_explorer_quelle
  #job_explorer_ziel
  #job_checkbox_subdirs
  #job_checkbox_delete
  #job_checkbox_md5
  #job_frame_title
  #job_frame_quelle
  #job_frame_ziel
  #job_frame_includes
  #job_frame_excludes
  #job_string_includes
  #job_string_excludes
  #job_button_hinzu
  #job_string_quelle
  #job_string_ziel
  #job_option_includes
  #job_option_excludes
  #job_option_all_files
  #job_checkbox_enumerate_subdirs
EndEnumeration  
 
 ; Fonts laden
#font_arial_small=0
#font_arial=1
#font_arial_bold=2
If LoadFont(#font_arial_small, "Arial", 7)
EndIf
If LoadFont(#font_arial, "Arial", 8)
  SetGadgetFont(#PB_Default, FontID(#font_arial))
EndIf
If LoadFont(#font_arial_bold, "Arial", 9, #PB_Font_Bold)
  ;SetGadgetFont(#PB_Default, FontID(#font_arial_bold))
EndIf
 
  
  ; Fenster aufbauen
  win_job=OpenWindow(#PB_Any, 0, 0, 600, 520,  wintitle$, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_Invisible)
  If win_job
    If CreateGadgetList(WindowID(win_job))
      ; TITLE
      links=15 : oben=5 : abstand=15 : fensterhaelfte=WindowWidth(win_job)/2 : breite=fensterhaelfte-30
      Frame3DGadget(#job_frame_title, 5, oben, fensterhaelfte-10, 50, "1. Titel")
      If IsFont(#font_arial_bold) : SetGadgetFont(#job_frame_title, FontID(#font_arial_bold)) : EndIf
      oben+abstand+5
      StringGadget(#job_string_title, links, oben, breite, 20, "")
    
      ; QUELLE
      oben+40
      Frame3DGadget(#job_frame_quelle, 5, oben, fensterhaelfte-10, 290, "2. Quelle wählen ")
      If IsFont(#font_arial_bold) : SetGadgetFont(#job_frame_quelle, FontID(#font_arial_bold)) : EndIf
      oben+abstand+5
      ExplorerTreeGadget(#job_explorer_quelle, links, oben, breite, 185, "", #PB_Explorer_AlwaysShowSelection | #PB_Explorer_AutoSort | #PB_Explorer_NoFiles)
      GadgetToolTip(#job_explorer_quelle, "Wählen Sie hier das Quellverzeichnis aus")
      oben+190
      StringGadget(#job_string_quelle, links, oben, breite, 20, GetGadgetText(#job_explorer_quelle))
      GadgetToolTip(#job_string_quelle, "Wählen Sie oben ein Quellverzeichnis (wird hier angezeigt), oder geben Sie das Verzeichnis ein")
      oben+10+abstand
      CheckBoxGadget(#job_checkbox_subdirs, links, oben, fensterhaelfte-30, 20, "Unterverzeichnisse mit verarbeiten (in Quelle)")
      SetGadgetState(#job_checkbox_subdirs, #True)
      GadgetToolTip(#job_checkbox_subdirs, "Aktivieren Sie das Häkchen, wenn auch die Unterverzeichnisse eingelesen und synronisiert werden sollen")
      oben+10+abstand
      CheckBoxGadget(#job_checkbox_md5, links, oben, breite, 20, "Dateiinhalt mittels MD5-Filefingerprint vergleichen")
      SetGadgetState(#job_checkbox_md5, #True)
      GadgetToolTip(#job_checkbox_md5, "Aktivieren Sie das Häkchen, wird der Dateiinhalt auf Basis des MD5-Fingerprints verglichen (langsamer)")
           
      ; ZIEL      
      oben=65 : links=fensterhaelfte+15 ;oben+30
      Frame3DGadget(#job_frame_ziel, links-10, oben, fensterhaelfte-10, 290, "3. Ziel wählen ")
      If IsFont(#font_arial_bold) : SetGadgetFont(#job_frame_ziel, FontID(#font_arial_bold)) : EndIf
      oben+abstand+5
      ExplorerTreeGadget(#job_explorer_ziel, links, oben, fensterhaelfte-30, 185, "", #PB_Explorer_AlwaysShowSelection | #PB_Explorer_AutoSort | #PB_Explorer_NoFiles)
      GadgetToolTip(#job_explorer_ziel, "Wählen Sie hier das Zielverzeichnis aus")
      oben+190
      StringGadget(#job_string_ziel, links, oben, breite, 20, GetGadgetText(#job_explorer_ziel))
      GadgetToolTip(#job_string_ziel, "Wählen Sie oben ein Zielverzeichnis (wird hier angezeigt), oder geben Sie das Verzeichnis ein")
      oben+10+abstand
      CheckBoxGadget(#job_checkbox_enumerate_subdirs, links, oben, breite, 20, "Unterordner für jedes Backup anlegen")
      SetGadgetState(#job_checkbox_enumerate_subdirs, #False)
      GadgetToolTip(#job_checkbox_enumerate_subdirs, "Aktivieren Sie das Häkchen, wird für jedes Backup im Zielverzeichnis, ein neuer Ordner angelegt der das Datum und die Zeit des Backups trägt")
      DisableGadget(#job_checkbox_md5, GetGadgetState(#job_checkbox_enumerate_subdirs))

      oben+10+abstand
      CheckBoxGadget(#job_checkbox_delete, links, oben, breite, 20, "Überflüssige Dateien löschen (Spiegelung)")
      SetGadgetState(#job_checkbox_delete, #False)
      DisableGadget(#job_checkbox_delete, GetGadgetState(#job_checkbox_enumerate_subdirs))
      GadgetToolTip(#job_checkbox_delete, "Aktivieren Sie das Häkchen, werden Dateien auf Ziel gelöscht, die in Quelle fehlen")
      
      ; OPTIONEN
      oben+40 : optionbreite=fensterhaelfte : links=15
      Frame3DGadget(#job_frame_includes, 5, oben, WindowWidth(win_job)-10, 95, "4. Dateitypen") 
      If IsFont(#font_arial_bold) : SetGadgetFont(#job_frame_includes, FontID(#font_arial_bold)) : EndIf
      oben+abstand+5
      ; ##### WO IST FOLGENDES GADGET? #####
      OptionGadget(#job_option_all_files, links, oben, optionsbreite, 20, "Alle Dateien berücksichtigen")
      ; #####
      oben+abstand+10      
      OptionGadget(#job_option_includes, links, oben, optionbreite, 20, "NUR diese Dateiendungen berücksichtigen")       
      oben+abstand+10 
      OptionGadget(#job_option_excludes, links, oben, optionbreite, 20, "Diese Dateiendungen NICHT berücksichtigen")

      oben-abstand-10
      StringGadget(#job_string_excludes, fensterhaelfte+abstand, oben, optionbreite-links*2, 20, excludefiles$) 
      oben+abstand+10
      StringGadget(#job_string_includes, fensterhaelfte+abstand, oben, optionbreite-links*2, 20, includefiles$) 

      GadgetToolTip(#job_option_all_files, "Wählen Sie hier um ALLE Dateien in dem gewählten Ordner zu vergleichen")
      GadgetToolTip(#job_option_includes, "Wählen Sie hier, welche Dateiendungen von der Sicherung betroffen sein sollen")
      GadgetToolTip(#job_option_excludes, "Wählen Sie hier, welche Dateiendungen NICHT von der Sicherung betroffen sein sollen")       
      GadgetToolTip(#job_string_includes, "Wählen Sie hier, welche Dateiendungen von der Sicherung betroffen sein sollen. Beispiel: .jpg,.gif")
      GadgetToolTip(#job_string_excludes, "Wählen Sie hier, welche Dateiendungen NICHT von der Sicherung betroffen sein sollen. Beispiel: .jpg,.gif")
      
      If include
        SetGadgetState(#job_option_includes, #True)         
      Else
        SetGadgetState(#job_option_excludes, #True) 
      EndIf             
      DisableGadget(#job_string_includes, include)
      DisableGadget(#job_string_excludes, include!1)

      oben+40
      ButtonGadget(#job_button_hinzu, 5, oben, WindowWidth(win_job)-10, 30, "Job speichern", $8000)
      If IsFont(#font_arial_bold) : SetGadgetFont(#job_button_hinzu, FontID(#font_arial_bold)) : EndIf
      GadgetToolTip(#job_button_hinzu, "Klicken Sie hier wenn Sie oben Quelle und Ziel festgelegt haben und den Job übernehmen möchten")
      
      
      HideWindow(win_job, #False)
      While WindowEvent() : Wend
    Else
      End
    EndIf
  Else
    End
  EndIf
  
  
  
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
Ich habe den Code aus dem Programm ausgeschnitten, er ist so lauffähig. Fehlende Variablen habe ich einfach durch "" oder #true bzw. #false ersetzt.

Das markierte OptionGadget() ist nicht zu finden, warum?
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Gadget nicht sichtbar bei Fensteraufbau

Beitrag von Kiffi »

> Kann jemand mal Hilfestellung leisten?

ja: optionsbreite <> optionbreite ;-)

Kleiner Tipp: Mit EnableExplicit wäre das nicht passiert.

Grüße ... Kiffi
a²+b²=mc²
Agent
Beiträge: 296
Registriert: 13.09.2004 11:28
Kontaktdaten:

Beitrag von Agent »

Danke Kiffi.

Es konnte ja nur sowas behämmertes sein. Dabei kopier ich schon sämtliche Varialben per STRG-C + STRG-V ;)

Vielleicht war es auch noch zu früh für mich :freak:
:praise:
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
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 »

Mit EnableExplicit kann sowas eigentlich nicht passieren :wink:
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
Antworten