Aktuelle Zeit: 15.09.2019 22:26

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 49 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 13.06.2019 08:10 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Den Effekt hatte ich gestern auch, aber wenn man jetzt auf die Seite geht, kann man es ohne Login downloaden.

_________________
BildBildBildBild(Update: 17.08.2019 (+196 Dateien, +1392 MB)) BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 13.06.2019 09:06 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
Das scheint wohl traffic-bedingt zu sein... wenn man sich die AGB's von dem Laden mal anschaut...

_________________
PureBasic 5.70 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 25.06.2019 08:04 
Offline

Registriert: 08.05.2010 15:49
Hallo Thorsten1867,
erstmal ganz vielen Dank, daß Du die tollen Gadgets bereitstellst.

Ich habe noch ein paar Bugs gefunden, mit nachstehendem Quick&Dirty Code solltest Du das reproduzieren können:

- Wenn ListExModul zusammen mit ButtonEx verwendet wird -> alle Buttons werden bei Mausberührung automatisch geklickt
- Gehe mit der Maus über Button1, ohne zuvor einen Listeneintrag selektiert zu haben -> Absturz in "GetItemID"
- Resize des ListExModule funktioniert nciht, wenn es in einem Panel platziert ist


Code:
XIncludeFile "ListEx\listexmodule.pbi"
XIncludeFile "ButtonEx\buttonexmodule.pbi"

DisableExplicit

Global NewMap mgadgets()

Procedure handler_main_SizeWindow()
  mw=WindowWidth(mgadgets("main"))
  ResizeGadget(mgadgets("header"),#PB_Ignore,#PB_Ignore,mw,#PB_Ignore)
   ResizeGadget(mgadgets("btn_1"),mw-(GadgetWidth(mgadgets("btn_1"))+10),#PB_Ignore,#PB_Ignore,#PB_Ignore)
  ResizeGadget(mgadgets("btn_4"),mw-(GadgetWidth(mgadgets("btn_4"))+10),#PB_Ignore,#PB_Ignore,#PB_Ignore)
  ResizeGadget(mgadgets("btn_2"),mw-(GadgetWidth(mgadgets("btn_2"))+10),#PB_Ignore,#PB_Ignore,#PB_Ignore)
  ResizeGadget(mgadgets("btn_3"),mw-(GadgetWidth(mgadgets("btn_3"))+10),#PB_Ignore,#PB_Ignore,#PB_Ignore)
 EndProcedure
 
 Procedure OpenDataWindow(sid$)
  mw=1000: mh=600
  If IsWindow(mgadgets("datalist"))
    ProcedureReturn
  EndIf
 
  mgadgets("datalist")= OpenWindow(#PB_Any, 0, 0, mw, mh, sid$, #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
 
  If IsWindow(mgadgets("datalist"))
    WindowBounds(mgadgets("datalist"), 800, 600,#PB_Ignore ,#PB_Ignore )
   
    bw=100: bh=30
    mgadgets("btn_datalist_ok")=    ButtonEx::Gadget(#PB_Any, mw-(bw+10), mh-(bh+20), bw, bh, "OK", ButtonEx::#MacOS, mgadgets("datalist")) ; ButtonEx::#MacOS
    DisableGadget(mgadgets("btn_1"),#True)
    cy=10
    mgadgets("list2")=  ListEx::Gadget(#PB_Any, 10, cy, mw-20, mh-(20+bh+20), "", 25, "", ListEx::#GridLines|ListEx::#NumberedColumn|ListEx::#AutoResize) ; ListEx::#NoRowHeader|ListEx::#MultiSelect|ListEx::#NumberedColumn|ListEx::#n|ListEx::#SingleClickEdit|ListEx::#AutoResize
    ListEx::DisableReDraw(mgadgets("list2"), #True)
   
    ListEx::AddColumn(mgadgets("list2"), ListEx::#LastItem, "1",  150,"",ListEx::#Dates)
    ListEx::AddColumn(mgadgets("list2"), ListEx::#LastItem, "2",  150)
    ListEx::AddColumn(mgadgets("list2"), ListEx::#LastItem, "3",  150)
   
   
    ListEx::ClearItems(mgadgets("list2"))
   
    Protected NewMap mcols.s()
    ClearMap(mcols())
    mcols("datasource")="Test"
    mcols("values")="102"
    mcols("timerange")=FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Val(mcols("timestamp")))+"-"+FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Val(mcols("timestamp")))
    ListEx::AddItem(mgadgets("list2"), ListEx::#LastItem, FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Val(mcols("timestamp")))+ #LF$ +mcols("id") + #LF$ + mcols("datasource")+#LF$ +mcols("values")+#LF$ +mcols("timerange")+#LF$+ mcols("datatypes")+#LF$+mcols("status"))
    ListEx::SetItemID(mgadgets("list2"), ListEx::countitems(mgadgets("list2"))-1,mcols("id"))
    ListEx::AddItem(mgadgets("list2"), ListEx::#LastItem, FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Val(mcols("timestamp")))+ #LF$ +mcols("id") + #LF$ + mcols("datasource")+#LF$ +mcols("values")+#LF$ +mcols("timerange")+#LF$+ mcols("datatypes")+#LF$+mcols("status"))
    ListEx::SetItemID(mgadgets("list2"), ListEx::countitems(mgadgets("list2"))-1,mcols("id"))
   
   
   
    ListEx::DisableReDraw(mgadgets("list2"), #False)
   
   
  EndIf
 
 
 
 
EndProcedure


Procedure OpenMainWindow()
  mw=1000: mh=600
  mgadgets("font1")=LoadFont(#PB_Any, "Arial",10,#PB_Font_HighQuality)
 
  mgadgets("fonttop1")=LoadFont(#PB_Any, "Arial",10,#PB_Font_HighQuality)
  mgadgets("fonttop2")=LoadFont(#PB_Any, "Arial",10,#PB_Font_HighQuality)
 
 
  mgadgets("main")= OpenWindow(#PB_Any, 0, 0, mw, mh, "Test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
  If IsWindow(mgadgets("main"))
    WindowBounds(mgadgets("main"), 800, 600,#PB_Ignore ,#PB_Ignore )
   
    cy=40
    mgadgets("header")=CanvasGadget(#PB_Any,0,0,mw,cy,#PB_Canvas_Container)
    CloseGadgetList()
   
   
   
   
   
    bw=100: bh=30
    cy+30
    mgadgets("btn_1")=    ButtonEx::Gadget(#PB_Any, mw-(bw+10), cy, bw, bh, "#1", ButtonEx::#MacOS, mgadgets("main")) ; ButtonEx::#MacOS
   
    cy+bh+10
    mgadgets("btn_2")=    ButtonEx::Gadget(#PB_Any, mw-(bw+10), cy, bw, bh, "#2", ButtonEx::#MacOS, mgadgets("main")) ; ButtonEx::#MacOS
   
    cy+20
   
    cy+bh+10
    mgadgets("btn_3")=    ButtonEx::Gadget(#PB_Any, mw-(bw+10), cy, bw, bh, "#3", ButtonEx::#MacOS, mgadgets("main")) ; ButtonEx::#MacOS
   
    cy+bh+10
    mgadgets("btn_4")=    ButtonEx::Gadget(#PB_Any, mw-(bw+10), cy, bw, bh, "#4", ButtonEx::#MacOS, mgadgets("main")) ; ButtonEx::#MacOS
   
   
   
    cy= GadgetY(mgadgets("btn_1"))
   
    mgadgets("panel")=PanelGadget(#PB_Any, 10, cy, mw-150, mh-(cy+120))
    AddGadgetItem (mgadgets("panel"), -1, "Panel 1")
   
    mgadgets("list")=  ListEx::Gadget(#PB_Any, 10, cy, GetGadgetAttribute(mgadgets("panel"), #PB_Panel_ItemWidth),GetGadgetAttribute(mgadgets("panel"), #PB_Panel_ItemHeight), "", 25, "", ListEx::#GridLines|ListEx::#NumberedColumn|ListEx::#AutoResize|ListEx::#ThreeState) ; ListEx::#NoRowHeader|ListEx::#MultiSelect|ListEx::#NumberedColumn|ListEx::#n|ListEx::#SingleClickEdit|ListEx::#AutoResize
    ListEx::DisableReDraw(mgadgets("list"), #True)
   
    ListEx::AddColumn(mgadgets("list"), ListEx::#LastItem, "Col1",  150,"",ListEx::#Text)
    ListEx::AddColumn(mgadgets("list"), ListEx::#LastItem, "Col2", 100,"",ListEx::#Text)
    ListEx::AddColumn(mgadgets("list"), ListEx::#LastItem, "Col3", 100,"",ListEx::#Text)
    ListEx::AddColumn(mgadgets("list"), ListEx::#LastItem, "Col4.", 80,"",ListEx::#Text)
    ListEx::AddColumn(mgadgets("list"), ListEx::#LastItem, "Col5", 50,"",ListEx::#Number)
    ListEx::SetAutoResizeColumn(mgadgets("list"), 2, 100)
    ;    ListEx::SetAutoResizeColumn(mgadgets("list"), 3, 100)
   
    ListEx::AddColumn(mgadgets("list"), ListEx::#LastItem, "Col6", 140,"",ListEx::#Text|ListEx::#SortArrows)
    ListEx::AddColumn(mgadgets("list"), ListEx::#LastItem, "", 5,"")
   
    ListEx::SetAutoResizeColumn(mgadgets("list"), 7, 5)
    ;
   
    ListEx::SetHeaderAttribute(mgadgets("list"), ListEx::#Align, ListEx::#Center)
    ListEx::SetHeaderSort(mgadgets("list"), 1, ListEx::#Ascending, ListEx::#Deutsch)
    ListEx::SetHeaderSort(mgadgets("list"), 2, ListEx::#Ascending, ListEx::#Deutsch)
    ListEx::SetHeaderSort(mgadgets("list"), 3, ListEx::#Ascending, ListEx::#Deutsch)
    ListEx::SetColor(mgadgets("list"), ListEx::#AlternateRowColor, $FBF7F5)
   
    ListEx::SetHeaderSort(mgadgets("list"), 5, ListEx::#Ascending)
    ListEx::SetHeaderSort(mgadgets("list"), 6, ListEx::#Ascending)
    ListEx::DisableReDraw(mgadgets("list"), #False)
    ListEx::SetFont(mgadgets("list"), FontID(mgadgets("font1")))
   
    ListEx::AddItem(mgadgets("list"), ListEx::#LastItem, "ID1"+ #LF$ +"Test" + #LF$ + "Test"+#LF$ + "Test"+#LF$ +"10"+#LF$+ FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Date())+#LF$)
    ListEx::SetItemID(mgadgets("list"), ListEx::countitems(mgadgets("list"))-1,"ID1")
   
    ListEx::AddItem(mgadgets("list"), ListEx::#LastItem, "ID2"+ #LF$ +"Test" + #LF$ + "Test"+#LF$ + "Test"+#LF$ +"10"+#LF$+ FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Date())+#LF$)
    ListEx::SetItemID(mgadgets("list"), ListEx::countitems(mgadgets("list"))-1,"ID2")
   
    ListEx::DisableReDraw(mgadgets("list"), #False)   
    CloseGadgetList()
   
    cy+mh-(cy+120)+20
    mgadgets("list1")=  ListEx::Gadget(#PB_Any, 10, cy, mw-150,60, "", 25, "", ListEx::#GridLines|ListEx::#NumberedColumn|ListEx::#AutoResize|ListEx::#ThreeState) ; ListEx::#NoRowHeader|ListEx::#MultiSelect|ListEx::#NumberedColumn|ListEx::#n|ListEx::#SingleClickEdit|ListEx::#AutoResize
    ListEx::DisableReDraw(mgadgets("list1"), #True)
   
    ListEx::AddColumn(mgadgets("list1"), ListEx::#LastItem, "Col1",  150,"",ListEx::#Text)
    ListEx::AddColumn(mgadgets("list1"), ListEx::#LastItem, "Col2", 100,"",ListEx::#Text)
    ListEx::AddColumn(mgadgets("list1"), ListEx::#LastItem, "Col3", 100,"",ListEx::#Text)
    ListEx::AddColumn(mgadgets("list1"), ListEx::#LastItem, "Col4.", 80,"",ListEx::#Text)
    ListEx::AddColumn(mgadgets("list1"), ListEx::#LastItem, "Col5", 50,"",ListEx::#Number)
    ListEx::SetAutoResizeColumn(mgadgets("list1"), 2, 100)
    ;    ListEx::SetAutoResizeColumn(mgadgets("list1"), 3, 100)
   
    ListEx::AddColumn(mgadgets("list1"), ListEx::#LastItem, "Col6", 140,"",ListEx::#Text|ListEx::#SortArrows)
    ListEx::AddColumn(mgadgets("list1"), ListEx::#LastItem, "", 5,"")
   
    ListEx::SetAutoResizeColumn(mgadgets("list1"), 7, 5)
    ;
   
    ListEx::SetHeaderAttribute(mgadgets("list1"), ListEx::#Align, ListEx::#Center)
    ListEx::SetHeaderSort(mgadgets("list1"), 1, ListEx::#Ascending, ListEx::#Deutsch)
    ListEx::SetHeaderSort(mgadgets("list1"), 2, ListEx::#Ascending, ListEx::#Deutsch)
    ListEx::SetHeaderSort(mgadgets("list1"), 3, ListEx::#Ascending, ListEx::#Deutsch)
    ListEx::SetColor(mgadgets("list1"), ListEx::#AlternateRowColor, $FBF7F5)
   
    ListEx::SetHeaderSort(mgadgets("list1"), 5, ListEx::#Ascending)
    ListEx::SetHeaderSort(mgadgets("list1"), 6, ListEx::#Ascending)
    ListEx::DisableReDraw(mgadgets("list1"), #False)
    ListEx::SetFont(mgadgets("list1"), FontID(mgadgets("font1")))
   
    ListEx::AddItem(mgadgets("list1"), ListEx::#LastItem, "ID1"+ #LF$ +"Test" + #LF$ + "Test"+#LF$ + "Test"+#LF$ +"10"+#LF$+ FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Date())+#LF$)
    ListEx::SetItemID(mgadgets("list1"), ListEx::countitems(mgadgets("list1"))-1,"ID1")
   
    ListEx::AddItem(mgadgets("list1"), ListEx::#LastItem, "ID2"+ #LF$ +"Test" + #LF$ + "Test"+#LF$ + "Test"+#LF$ +"10"+#LF$+ FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Date())+#LF$)
    ListEx::SetItemID(mgadgets("list1"), ListEx::countitems(mgadgets("list1"))-1,"ID2")
   
    ListEx::DisableReDraw(mgadgets("list1"), #False)   
  EndIf
 
 
  BindEvent(#PB_Event_SizeWindow,@handler_main_SizeWindow(),mgadgets("main"))
  PostEvent(#PB_Event_SizeWindow,mgadgets("main"),0)
 
 
EndProcedure

Procedure Main()
  Protected bQuit
  Repeat
    Event = WaitWindowEvent(10)
    EventWin=EventWindow()
   
    Select EventWin
      Case  mgadgets("datalist")
        Select Event
          Case  #PB_Event_CloseWindow     
            If IsWindow(mgadgets("datalist"))
              CloseWindow(mgadgets("datalist"))
              DisableGadget(mgadgets("btn_1"),#False)
            EndIf
          Case #PB_Event_Gadget
            Select EventGadget()
              Case mgadgets("btn_datalist_ok")
                PostEvent(#PB_Event_CloseWindow ,mgadgets("datalist"),0)
               
            EndSelect
           
        EndSelect
       
       
       
      Case  mgadgets("main")
        Select Event
          Case ListEx::#Event_Gadget ; works with or without EventType()
            If EventType() = ListEx::#EventType_Row
              Debug ">>> Row: " + Str(EventData())
            EndIf
          Case  #PB_Event_CloseWindow     
            bQuit=#True
           
           
           
          Case #PB_Event_Gadget
            Select EventGadget()
              Case mgadgets("btn_1")
                iRow=ListEx::getstate(mgadgets("list"))
                sid$=ListEx::getitemid(mgadgets("list"),iRow)
                OpenDataWindow(sid$)
               
              Case mgadgets("list")      ;{ only in use with EventType()
               
               
            EndSelect
        EndSelect ;}
    EndSelect
   
   
  Until bQuit=#True

EndProcedure

OpenMainWindow()
Main()


Dann noch eine Anregung für das pbPDF-Module:
Es wäre gut, wenn man nicht nur neues PDF anlegen, sondern eine existierende PDF auch öffnen könnte: dadurch könnte man einfach Vorlagen realisieren.
Momentan löse ich das so, dass ich das als Vorlage gewünschte PDF als Grafik speichere und dann in einem neuem pbPDF quasi als Hintergrund zeichne, das führt aber zu unnötig grossen Dateien


Danke und viele Grüsse
Oliver


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 25.06.2019 17:29 
Offline
Benutzeravatar

Registriert: 04.02.2005 15:40
Wohnort: Kaufbeuren
Oliver13 hat geschrieben:
Hallo Thorsten1867,
erstmal ganz vielen Dank, daß Du die tollen Gadgets bereitstellst.

Ich habe noch ein paar Bugs gefunden, mit nachstehendem Quick&Dirty Code solltest Du das reproduzieren können:

- Wenn ListExModul zusammen mit ButtonEx verwendet wird -> alle Buttons werden bei Mausberührung automatisch geklickt
- Gehe mit der Maus über Button1, ohne zuvor einen Listeneintrag selektiert zu haben -> Absturz in "GetItemID"
- Resize des ListExModule funktioniert nciht, wenn es in einem Panel platziert ist


Ich fürchte, es handelt sich bei den beschriebenen Problemen um keine wirklichen Bugs.
Bei der Gelegenheit habe ich aber trotzdem einen kleinen Bug in den PostEvents von ButtonEx gefunden und behoben. Da ich gerade dabei war, habe ich auch noch AutoResize hinzugefügt.

- Ein CanvasGadget sendet bei jeder Mausbewegung einen Event. Daher der Hinweis im Beispielcode "only in use with EventType()" (#PB_Event_Gadget)
- Absturz: Wenn du "-1" als Zeile übergibst, stürzt SelectElement() ab, daher sollte man immer überprüfen, ob ein Element selektiert wurde.
- Resize funktioniert nur, wenn ListEX eine korrekte Window-Nummer erhalten hat.

Anbei deinen Beispielcode, so wie ich ihn getestet habe:
Code:
XIncludeFile "listexmodule.pbi"
XIncludeFile "buttonexmodule.pbi"

EnableExplicit

Enumeration Windows 1
  #MainWindow
  #DataList
EndEnumeration

Enumeration Gadgets 1
  #Header
  #Btn_1
  #Btn_2
  #Btn_3
  #Btn_4
  #Panel
  #List
  #List1
  #List2
  #Btn_DataList_OK
EndEnumeration

Enumeration Fonts 1
  #Font1
  #FontTop1
  #FontTop2
EndEnumeration

LoadFont(#Font1,    "Arial", 10, #PB_Font_HighQuality)
LoadFont(#FontTop1, "Arial", 10, #PB_Font_HighQuality)
LoadFont(#FontTop2, "Arial", 10, #PB_Font_HighQuality)

Procedure handler_main_SizeWindow()
  Define.i mw
  mw=WindowWidth(#MainWindow)
  ResizeGadget(#Header ,#PB_Ignore,#PB_Ignore,mw,#PB_Ignore)
  ResizeGadget(#Panel  ,#PB_Ignore,#PB_Ignore,mw-150,#PB_Ignore)
 EndProcedure

Procedure OpenDataWindow(sid$)
  Define.i cy
  Define.i mw=1000, mh=600, bw=100, bh=30
  NewMap mcols.s()
 
  If IsWindow(#DataList) : ProcedureReturn #False : EndIf
 
  If OpenWindow(#DataList, 0, 0, mw, mh, sid$, #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)

    WindowBounds(#DataList, 800, 600, #PB_Ignore ,#PB_Ignore )

    ButtonEx::Gadget(#Btn_DataList_OK, mw-(bw+10), mh-(bh+20), bw, bh, "OK", ButtonEx::#MacOS|ButtonEx::#AutoResize, #DataList)
    ButtonEx::SetAutoResizeFlags(#Btn_DataList_OK, ButtonEx::#MoveX)
   
    If IsWindow(#MainWindow) : DisableGadget(#Btn_1, #True) : EndIf
   
    cy=10
   
    If ListEx::Gadget(#List2, 10, cy, mw-20, mh-(20+bh+20), "", 25, "", ListEx::#GridLines|ListEx::#NumberedColumn|ListEx::#AutoResize)
     
      ListEx::DisableReDraw(#List2, #True)
     
      ListEx::AddColumn(#List2, ListEx::#LastItem, "1",  150,"", ListEx::#Dates)
      ListEx::AddColumn(#List2, ListEx::#LastItem, "2",  150)
      ListEx::AddColumn(#List2, ListEx::#LastItem, "3",  150)
      ;ListEx::ClearItems(#List2) ???
     
      ;ClearMap(mcols())          ???
      mcols("datasource") = "Test"
      mcols("values") = "102"
      mcols("timerange")=FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Val(mcols("timestamp")))+"-"+FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Val(mcols("timestamp")))
     
      ListEx::AddItem(#List2, ListEx::#LastItem, FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Val(mcols("timestamp")))+ #LF$ +mcols("id") + #LF$ + mcols("datasource")+#LF$ +mcols("values")+#LF$ +mcols("timerange")+#LF$+ mcols("datatypes")+#LF$+mcols("status"), mcols("id"))
      ListEx::AddItem(#List2, ListEx::#LastItem, FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Val(mcols("timestamp")))+ #LF$ +mcols("id") + #LF$ + mcols("datasource")+#LF$ +mcols("values")+#LF$ +mcols("timerange")+#LF$+ mcols("datatypes")+#LF$+mcols("status"), mcols("id"))

      ListEx::DisableReDraw(#List2, #False)
    EndIf
   
    ProcedureReturn #True
  EndIf

EndProcedure

Procedure OpenMainWindow()
  Define.i cy
  Define.i mw=1000, mh=600, bw=100, bh=30

  If OpenWindow(#MainWindow, 0, 0, mw, mh, "Test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
   
    WindowBounds(#MainWindow, 800, 600, #PB_Ignore, #PB_Ignore )
   
    cy=40
   
    If CanvasGadget(#Header, 0, 0, mw, cy, #PB_Canvas_Container)
      CloseGadgetList()
    EndIf

    cy+30
    ButtonEx::Gadget(#Btn_1, mw-(bw+10), cy, bw, bh, "#1", ButtonEx::#MacOS|ButtonEx::#AutoResize, #MainWindow)
    ButtonEx::SetAutoResizeFlags(#Btn_1, ButtonEx::#MoveX)
    cy+bh+10
    ButtonEx::Gadget(#Btn_2, mw-(bw+10), cy, bw, bh, "#2", ButtonEx::#MacOS|ButtonEx::#AutoResize, #MainWindow)
    ButtonEx::SetAutoResizeFlags(#Btn_2, ButtonEx::#MoveX)
    cy+20
    cy+bh+10
    ButtonEx::Gadget(#Btn_3, mw-(bw+10), cy, bw, bh, "#3", ButtonEx::#MacOS|ButtonEx::#AutoResize, #MainWindow)
    ButtonEx::SetAutoResizeFlags(#Btn_3, ButtonEx::#MoveX)
    cy+bh+10
    ButtonEx::Gadget(#Btn_4, mw-(bw+10), cy, bw, bh, "#4", ButtonEx::#MacOS|ButtonEx::#AutoResize, #MainWindow)
    ButtonEx::SetAutoResizeFlags(#Btn_4, ButtonEx::#MoveX)
    cy = GadgetY(#Btn_1)
   
    If PanelGadget(#Panel, 10, cy, mw-150, mh-(cy+120))
      AddGadgetItem (#Panel, -1, "Panel 1")
   
      If ListEx::Gadget(#List, 10, cy, GetGadgetAttribute(#Panel, #PB_Panel_ItemWidth) - 20, GetGadgetAttribute(#Panel, #PB_Panel_ItemHeight) - cy - 10, "", 25, "", ListEx::#GridLines|ListEx::#NumberedColumn|ListEx::#AutoResize|ListEx::#ThreeState, #MainWindow)
     
        ListEx::DisableReDraw(#List, #True)
       
        ListEx::AddColumn(#List, ListEx::#LastItem, "Col1", 150,"", ListEx::#Text)
        ListEx::AddColumn(#List, ListEx::#LastItem, "Col2", 200,"", ListEx::#Text)
        ListEx::AddColumn(#List, ListEx::#LastItem, "Col3", 100,"", ListEx::#Text)
        ListEx::AddColumn(#List, ListEx::#LastItem, "Col4.", 80,"", ListEx::#Text)
        ListEx::AddColumn(#List, ListEx::#LastItem, "Col5",  50,"", ListEx::#Number)
        ListEx::AddColumn(#List, ListEx::#LastItem, "Col6", 140,"",ListEx::#Text|ListEx::#SortArrows)
        ListEx::AddColumn(#List, ListEx::#LastItem, "", 77,"")
 
        ListEx::SetHeaderAttribute(#List, ListEx::#Align, ListEx::#Center)
       
        ListEx::SetHeaderSort(#List, 1, ListEx::#Ascending, ListEx::#Deutsch)
        ListEx::SetHeaderSort(#List, 2, ListEx::#Ascending, ListEx::#Deutsch)
        ListEx::SetHeaderSort(#List, 3, ListEx::#Ascending, ListEx::#Deutsch)
        ListEx::SetHeaderSort(#List, 5, ListEx::#Ascending)
        ListEx::SetHeaderSort(#List, 6, ListEx::#Ascending)
       
        ListEx::SetColor(#List, ListEx::#AlternateRowColor, $FBF7F5)
        ListEx::SetFont(#List, FontID(#Font1))
   
        ListEx::AddItem(#List, ListEx::#LastItem, "ID1"+ #LF$ +"Test" + #LF$ + "Test"+#LF$ + "Test"+#LF$ +"10"+#LF$+ FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", Date())+#LF$, "ID1")
        ListEx::AddItem(#List, ListEx::#LastItem, "ID2"+ #LF$ +"Test" + #LF$ + "Test"+#LF$ + "Test"+#LF$ +"10"+#LF$+ FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss", Date())+#LF$, "ID2")
 
        ListEx::DisableReDraw(#List, #False)
       
        ListEx::SetAutoResizeColumn(#List, 7, 5)
       
      EndIf
     
      CloseGadgetList()
    EndIf
   
    cy + mh-(cy+120) + 20

    If ListEx::Gadget(#List1, 10, cy, mw-150, 60, "", 25, "", ListEx::#GridLines|ListEx::#NumberedColumn|ListEx::#AutoResize|ListEx::#ThreeState, #MainWindow)
     
      ListEx::DisableReDraw(#List1, #True)
     
      ListEx::AddColumn(#List1, ListEx::#LastItem, "Col1", 150,"", ListEx::#Text)
      ListEx::AddColumn(#List1, ListEx::#LastItem, "Col2", 100,"", ListEx::#Text)
      ListEx::AddColumn(#List1, ListEx::#LastItem, "Col3", 100,"", ListEx::#Text)
      ListEx::AddColumn(#List1, ListEx::#LastItem, "Col4.", 80,"", ListEx::#Text)
      ListEx::AddColumn(#List1, ListEx::#LastItem, "Col5",  50,"", ListEx::#Number)
      ListEx::AddColumn(#List1, ListEx::#LastItem, "Col6", 140,"", ListEx::#Text|ListEx::#SortArrows)
      ListEx::AddColumn(#List1, ListEx::#LastItem, "", 77,"")
      ListEx::SetAutoResizeColumn(#List1, 2, 100)  ; entweder 2 oder 7

      ListEx::SetHeaderAttribute(#List1, ListEx::#Align, ListEx::#Center)
     
      ListEx::SetHeaderSort(#List1, 1, ListEx::#Ascending, ListEx::#Deutsch)
      ListEx::SetHeaderSort(#List1, 2, ListEx::#Ascending, ListEx::#Deutsch)
      ListEx::SetHeaderSort(#List1, 3, ListEx::#Ascending, ListEx::#Deutsch)
      ListEx::SetHeaderSort(#List1, 5, ListEx::#Ascending)
      ListEx::SetHeaderSort(#List1, 6, ListEx::#Ascending)
     
      ListEx::SetColor(#List1, ListEx::#AlternateRowColor, $FBF7F5)
      ListEx::SetFont(#List1, FontID(#Font1))
   
      ListEx::AddItem(#List1, ListEx::#LastItem, "ID1"+ #LF$ +"Test" + #LF$ + "Test"+#LF$ + "Test"+#LF$ +"10"+#LF$ + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Date())+#LF$, "ID1")
      ListEx::AddItem(#List1, ListEx::#LastItem, "ID2"+ #LF$ +"Test" + #LF$ + "Test"+#LF$ + "Test"+#LF$ +"10"+#LF$ + FormatDate("%dd.%mm.%yyyy %hh:%ii:%ss",Date())+#LF$, "ID2")
     
      ListEx::DisableReDraw(#List1, #False) 
     
      ListEx::SetAutoResizeColumn(#List1, 7, 5)
    EndIf
   
    BindEvent(#PB_Event_SizeWindow,@handler_main_SizeWindow(), #MainWindow)
   
    ProcedureReturn #True
  EndIf
 
EndProcedure

Procedure DataWindow(sid$)
  Define.i bQuit = #False
 
  If OpenDataWindow(sid$)
   
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          If EventWindow() = #DataList
            If IsWindow(#MainWindow) : DisableGadget(#Btn_1, #False) : EndIf
            bQuit = #True
          EndIf
        Case ButtonEx::#Event_Gadget
          Select EventGadget()
            Case #Btn_DataList_OK
              bQuit = #True
              ; PostEvent(#PB_Event_CloseWindow, #DataList, 0) ; ???
          EndSelect
      EndSelect
    Until bQuit
   
    CloseWindow(#DataList) 
  EndIf
 
EndProcedure

Procedure MainWindow()
  Define.s sid$
  Define.i iRow, bQuit = #False
 
  If OpenMainWindow()
   
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          If EventWindow() = #MainWindow
            bQuit=#True
          EndIf
        Case ListEx::#Event_Gadget
          Select EventGadget()
            Case #List
              If EventType() = ListEx::#EventType_Row
                Debug ">>> Row: " + Str(EventData())
              EndIf
            Case #List1
             
          EndSelect
        Case #PB_Event_Gadget
          Select EventGadget()
            Case #Btn_1 ; only in use with EventType()
              If EventType() = ButtonEx::#EventType_Button
                iRow = ListEx::GetState(#List)
                If iRow >= 0
                  sid$ = ListEx::GetItemID(#List, iRow)
                  DataWindow(sid$)
                EndIf
              EndIf
            Case #Btn_2 ; only in use with EventType()
              If EventType() = ButtonEx::#EventType_Button
               
              EndIf
            Case #Btn_3 ; only in use with EventType()
              If EventType() = ButtonEx::#EventType_Button
               
              EndIf
            Case #Btn_4 ; only in use with EventType()
              If EventType() = ButtonEx::#EventType_Button
               
              EndIf
          EndSelect
      EndSelect
    Until bQuit

    CloseWindow(#MainWindow) 
  EndIf

EndProcedure

MainWindow()

_________________
Download der PureBasic-Module (GitHub)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 25.06.2019 21:12 
Offline
Benutzeravatar

Registriert: 04.02.2005 15:40
Wohnort: Kaufbeuren
Oliver13 hat geschrieben:
Dann noch eine Anregung für das pbPDF-Module:
Es wäre gut, wenn man nicht nur neues PDF anlegen, sondern eine existierende PDF auch öffnen könnte: dadurch könnte man einfach Vorlagen realisieren.
Momentan löse ich das so, dass ich das als Vorlage gewünschte PDF als Grafik speichere und dann in einem neuem pbPDF quasi als Hintergrund zeichne, das führt aber zu unnötig grossen Dateien


Ein existierendes PDF lässt sich leider nicht so einfach einlesen, denn dass ist eine Wissenschaft für sich und hätte vermutlich einen umfangreicheren Code als das ganze pbPDF-Module zur Folge. Vielleicht kannst du ja die Formular-Funktionen nutzen, um ein PDF nachträglich zu ändern.

_________________
Download der PureBasic-Module (GitHub)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 26.06.2019 16:26 
Offline

Registriert: 08.05.2010 15:49
Thorsten1867 hat geschrieben:

Ich fürchte, es handelt sich bei den beschriebenen Problemen um keine wirklichen Bugs.
Bei der Gelegenheit habe ich aber trotzdem einen kleinen Bug in den PostEvents von ButtonEx gefunden und behoben. Da ich gerade dabei war, habe ich auch noch AutoResize hinzugefügt.


Da hatte ich wohl einen Denkfehler.. Sorry, und danke für den Hinweis,. Jetzt läuft es problemlos.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 26.06.2019 16:31 
Offline

Registriert: 08.05.2010 15:49
Thorsten1867 hat geschrieben:
Ein existierendes PDF lässt sich leider nicht so einfach einlesen, denn dass ist eine Wissenschaft für sich und hätte vermutlich einen umfangreicheren Code als das ganze pbPDF-Module zur Folge. Vielleicht kannst du ja die Formular-Funktionen nutzen, um ein PDF nachträglich zu ändern.


Schade - ich dachte, daß man die mit pbPDF erzeugten Zeichenoperationen einfach hinter den im PDF bereits vorhandenen Ausgaben anfügen bzw. in die Datei schreiben könnte.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 26.06.2019 17:57 
Offline
Benutzeravatar

Registriert: 04.02.2005 15:40
Wohnort: Kaufbeuren
Oliver13 hat geschrieben:
Schade - ich dachte, daß man die mit pbPDF erzeugten Zeichenoperationen einfach hinter den im PDF bereits vorhandenen Ausgaben anfügen bzw. in die Datei schreiben könnte.

Es sind lauter Objekte, die alle auf andere Objekte verweisen und dann muss der Offset in Byte jedes Objektes vom Anfang des PDFs an neu berechnet werden, um nur ein paar Beispiele zu nennen.

_________________
Download der PureBasic-Module (GitHub)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 17.07.2019 19:05 
Offline
Benutzeravatar

Registriert: 04.02.2005 15:40
Wohnort: Kaufbeuren
Update:
  • neues Flag #FitColumn für AddColumn()
  • Align & Font für einzelne Spalten der Kopfzeile
  • SetHeaderHeight() hinzugefügt
  • SetFont() & SetColor() für einzelne Spalten
  • SetFont() um Typparameter ergänzt (#HeaderFont/#StringFont/#GadgetFont)

_________________
Download der PureBasic-Module (GitHub)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: [Module] Editier- und sortierbares ListenGadget (All OS)
BeitragVerfasst: 18.07.2019 13:48 
Offline
Benutzeravatar

Registriert: 04.02.2005 15:40
Wohnort: Kaufbeuren
Update: CloseEdit() - schließt die alle Zellen, die zum Bearbeiten geöffnet sind (StringGadget / ComboBox / DateGadget) und speichert die Änderungen.

_________________
Download der PureBasic-Module (GitHub)

Bild


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 49 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye