[Module] ListEx - Gadget(All OS)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

[Module] ListEx - Gadget(All OS)

Beitrag 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
Zuletzt geändert von Thorsten1867 am 20.12.2019 16:24, insgesamt 14-mal geändert.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

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

Beitrag 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.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

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

Beitrag von Thorsten1867 »

Bug fixed
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

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

Beitrag von Thorsten1867 »

ccode_new hat geschrieben:Ohne moderne Themenunterstützung nicht gebrauchfähig.
Was ist eine moderne Themen-Unterstützung?
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

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

Beitrag 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.

:?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

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

Beitrag 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.'
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

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

Beitrag von Thorsten1867 »

Workaround für MacOS
Vermute ein Bug in der PB Version für MacOS (ClipOutput/UnclipOutput).
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

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

Beitrag von ccode_new »

Thorsten1867 hat geschrieben:Vermute ein Bug in der PB Version für MacOS (ClipOutput/UnclipOutput).
Ich auch! :mrgreen:
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

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

Beitrag von Thorsten1867 »

Hinzugefügt:
  • Sortierung: Geburtstag (#SortBirthday)
  • Laden & Speichern eines Farbschemas (Theme)
Zuletzt geändert von Thorsten1867 am 05.03.2019 18:33, insgesamt 1-mal geändert.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

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

Beitrag von Thorsten1867 »

Hinzugefügt:
  • Resize Handler mit automatischer Größenanpassung einer definierten Spalte (minWidth/maxWidth)
  • Verknüpfung mit PopupMenü möglich
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Antworten