Seite 1 von 8

[Module] ListEx - Gadget(All OS)

Verfasst: 04.03.2019 20:17
von Thorsten1867
ListEx Gadget - Module (All OS / DPI)
  • Gadget: #GridLines / #NoRowHeader / #NumberedColumn (= Column 0 mit Zeilennummern)
  • Unterstützung von Images mit/ohne Text oder für Buttons
  • editierbare Spalten (Strings/CheckBoxes/ComboBoxes/DateGadgets)
  • Spalten mit Events (Buttons / Links / Header-Klick)
  • Sortierbare Spalten (String / Integer / Float / Datum / Zeit / Geld)
  • Sortierung nach deutschen Regeln (Lexikon bzw. Telefonbuch)
  • Sortierung mittels Header-Klick (#SortArrows / #SwitchDirection)
  • Automatisch Verkleinerung einer definierten Spalte, wenn horizontaler ScrollBar sichtbar wird
  • Automatische Größenanpassung an Fenster möglich (#AutoResize)
  • Unterstützung von DPI-Option in PB 5.7
  • Labels für Spalten für einfachere Abfrage
  • Data (Integer) und ID (String) können für jede Listenzeilen festgelegt werden
  • automatische Größenanpassung an Fenster (#MoveX|#MoveY|#ResizeWidth|#ResizeHeight)
Bild

Code: Alles auswählen

; ListEx::AddItem()                 - similar to 'AddGadgetItem()'
; ListEx::AddColumn()               - similar to 'AddGadgetColumn()'
; ListEx::AddComboBoxItems()        - add items to the comboboxes of the column (items seperated by #LF$)
; ListEx::CountItems()              - similar to 'CountGadgetItems()'
; ListEx::ChangeCountrySettings()   - change default settings
; ListEx::ClearComboBoxItems()      - clear items of the comboboxes of the column
; ListEx::ClearItems()              - similar to 'ClearGadgetItems()'
; ListEx::DisableEditing()          - disable editing for the complete list
; ListEx::DisableReDraw()           - disable redraw
; ListEx::EventColumn()             - column of event (Event: ListEx::#Event_Module)
; ListEx::EventRow()                - row of event    (Event: ListEx::#Event_Module)
; ListEx::EventState()              - returns state   (e.g. CheckBox / DateGadget)
; ListEx::EventValue()              - returns value   (string)
; ListEx::EventID()                 - returns row ID or header label 
; ListEx::Gadget()                  - [#GridLines|#NumberedColumn|#NoRowHeader]
; ListEx::GetAttribute()            - similar to 'GetGadgetAttribute()'
; ListEx::GetCellText()             - similar to 'GetGadgetItemText()' with labels
; ListEx::GetCellState()            - similar to 'GetGadgetItemState()' with labels
; ListEx::GetChangedState()         - check whether entries have been edited
; ListEx::GetColumnAttribute()      - similar to 'GetGadgetItemAttribute()'
; ListEx::GetColumnState()          - similar to 'GetGadgetItemState()' for a specific column
; ListEx::GetItemData()             - similar to 'GetGadgetItemData()'
; ListEx::GetItemID()               - similar to 'GetGadgetItemData()' but with string data
; ListEx::GetItemState()            - similar to 'GetGadgetItemState()'
; ListEx::GetItemText()             - similar to 'GetGadgetItemText()'
; ListEx::.GetState(GNum.i)         - similar to 'GetGadgetState()'
; ListEx::Refresh()                 - redraw gadget
; ListEx::RemoveColumn()            - similar to 'RemoveGadgetColumn()'
; ListEx::RemoveItem()              - similar to 'RemoveGadgetItem()'
; ListEx::ResetChangedState()       - reset to not edited
; ListEx::SetAutoResizeColumn()     - column that is reduced when the vertical scrollbar is displayed.
; ListEx::SetAutoResizeFlags()      - [#MoveX|#MoveY|#ResizeWidth|#ResizeHeight]
; ListEx::SetCellState()            - similar to 'SetGadgetItemState()' with labels
; ListEx::SetCellText()             - similar to 'SetGadgetItemText()' with labels
; ListEx::SetColor()                - similar to 'SetGadgetColor()'
; ListEx::SetColorTheme()           - change the color theme
; ListEx::SetColumnAttribute()      - [#Align/#Width/#Font]
; ListEx::SetColumnState()          - similar to 'SetGadgetItemState()' for a specific column
; ListEx::SetDateMask()             - similar to 'SetGadgetText()' and 'DateGadget()'
; ListEx::SetDateAttribute()        - similar to 'SetGadgetAttribute()' and 'DateGadget()'
; ListEx::SetFont()                 - similar to 'SetGadgetFont()'
; ListEx::SetHeaderAttribute()      - [#Align]
; ListEx::SetHeaderSort()           - enable sort by header column [#Sort_Ascending|#Sort_Descending|#Sort_NoCase|#Sort_SwitchDirection]
; ListEx::SetItemAttribute()        - similar to 'SetGadgetItemAttribute()'
; ListEx::SetItemColor()            - similar to 'SetGadgetItemColor()'
; ListEx::SetItemData()             - similar to 'SetGadgetItemData()'
; ListEx::SetItemFont()             - change font of row or header [#Header]
; ListEx::SetItemID()               - similar to 'SetGadgetItemData()' but with string data
; ListEx::SetItemImage( )           - add a image at row/column
; ListEx::SetItemState()            - similar to 'SetGadgetItemState()'
; ListEx::SetItemText()             - similar to 'SetGadgetItemText()'
; ListEx::SetProgressBarAttribute() - set minimum or maximum value for progress bars
; ListEx::SetProgressBarFlags()     - set flags for progressbar (#ShowPercent)
; ListEx::SetRowsHeight()           - change height of rows
; ListEx::SetTimeMask()             - change mask for time (sorting)
; ListEx::Sort()                    - sort rows by column [#SortString|#SortNumber|#SortFloat|#SortDate|#SortBirthday|#SortTime|#SortCash / #Deutsch]
Download: ListExModule.pbi

Re: [Module] Editier- und sortierbares ListenGadget (Beta)

Verfasst: 04.03.2019 20:56
von ccode_new
Hallo Thorsten1867,

ein schönes Modul hast du da erstellt.

Kann ich gebrauchen.

:allright:

----
Ok, dass ganze ist ja richtig Fehlerbelastet.

Ohne moderne Themenunterstützung nicht gebrauchfähig.

Und der letzte Listeneintrag führt zu Problemen. (Man kann diesen Eintrag auch nicht auswählen.)

Hab mir das Ganze aber bisher auch nur Grob angesehen.

Re: [Module] Editier- und sortierbares ListenGadget (Beta)

Verfasst: 04.03.2019 22:01
von Thorsten1867
Bug fixed

Re: [Module] Editier- und sortierbares ListenGadget (Beta)

Verfasst: 04.03.2019 22:03
von Thorsten1867
ccode_new hat geschrieben:Ohne moderne Themenunterstützung nicht gebrauchfähig.
Was ist eine moderne Themen-Unterstützung?

Re: [Module] Editier- und sortierbares ListenGadget (Beta)

Verfasst: 04.03.2019 22:15
von ccode_new
Hallo Thorsten1867!

Danke für den Bug-Fix.

Was ist eine moderne Themen-Unterstützung?

Das was Windows 7 oder Windows 10 per Standard als Themen anzeigt.

Das Gegenteil wäre bei Deaktivierung des Häkchens in den "Compiler-Einstellungen" sichtbar.

(Es kommt zu Darstellungsproblemen)
------

Unter einem Nicht-Windows-Betriebssystem wird der Anzeigetext (der Listeneinträge) zusammengequetscht in der oberen linken Ecke dargestellt.

Der Text der Listenköpfe ist OK.

...Mmmm

Wenn ich jetzt in z.B. in Zeile 1301 : ;ClipOutput(colX, rowY, ListEx()\Cols()\Width, ListEx()\Rows()\Height) und natürlich auch das dazugehörige ;UnclipOutput() als Kommentar setze funktioniert die Text-Darstellung auch Außerhalb von Windows.

:?

Re: [Module] Editier- und sortierbares ListenGadget (Beta)

Verfasst: 04.03.2019 22:46
von Thorsten1867
Ich habe es in einer virtuellen Machine getestet und kann mir nicht erklären, warum unter MacOS die X/Y-Koordinaten bei DrawText() ignoriert werden.
Unter Windows funktioniert es mit oder ohne 'moderne Themen Unterstützumg.'

Re: [Module] Editier- und sortierbares ListenGadget (Beta)

Verfasst: 04.03.2019 22:59
von Thorsten1867
Workaround für MacOS
Vermute ein Bug in der PB Version für MacOS (ClipOutput/UnclipOutput).

Re: [Module] Editier- und sortierbares ListenGadget (Beta)

Verfasst: 04.03.2019 23:11
von ccode_new
Thorsten1867 hat geschrieben:Vermute ein Bug in der PB Version für MacOS (ClipOutput/UnclipOutput).
Ich auch! :mrgreen:

Re: [Module] Editier- und sortierbares ListenGadget (Beta)

Verfasst: 05.03.2019 12:00
von Thorsten1867
Hinzugefügt:
  • Sortierung: Geburtstag (#SortBirthday)
  • Laden & Speichern eines Farbschemas (Theme)

Re: [Module] Editier- und sortierbares ListenGadget (Beta)

Verfasst: 05.03.2019 18:33
von Thorsten1867
Hinzugefügt:
  • Resize Handler mit automatischer Größenanpassung einer definierten Spalte (minWidth/maxWidth)
  • Verknüpfung mit PopupMenü möglich