Module: ListIcon Plus - Edit & Sort (deu.)

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.
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von ThoPie »

Zunächst mal ein großes Lob für diese tolle Modul.
Ich habe es in mein Projekt eingebaut und es leistet mir tolle Dienste.

Nun habe ich mal noch 2 Fragen zu folgenden Realisierungsmöglichkeiten.

1. Ist es möglich beim Klick auf den Spaltenkopf die Sortierung (Aufsteigend - Absteigend - Aufsteigend usw.) umzusetzen.
2. Ist es möglich im Spaltenkopf durch Anzeige eines Symbols (Pfeil oder +/-) die aktuelle Sortierung anzuzeigen.

Vielen Dank.
Bild
Benutzeravatar
Cebu-Uli
Beiträge: 22
Registriert: 04.09.2007 03:19
Wohnort: Wernigerode

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von Cebu-Uli »

Auch von mir ein Lob für dein Modul. Sehr brauchbar. Doch leider bin ich bei der Benutzung auf einen Fehler gestoßen und möchte dich bitten, dir das mal anzusehen. Zur Demonstration habe ich dein Programmbeispiel etwas abgeändert:

Code: Alles auswählen

CompilerIf #PB_Compiler_IsMainFile
  #Window = 0
  #List   = 1
  #Font_Arial10B = 2
  #Font_Arial9I  = 3
  
  LoadFont(#Font_Arial10B,"Arial",10,#PB_Font_Bold)
  LoadFont(#Font_Arial9I,"Arial",9,#PB_Font_Italic)
  
  If OpenWindow(#Window,0,0,360,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
    ListIconGadget(#List,10,10,340,230,"Column 0",80,#PB_ListIcon_GridLines | #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_CheckBoxes)
    AddGadgetColumn(#List,1,"Column 1",80)
    AddGadgetColumn(#List,2,"Column 2",80)
    AddGadgetColumn(#List,3,"Number",54)
    AddGadgetColumn(#List,4,"Hide",40)
    UseModule ListIcon
      AddListItem(#List, -1, "Left"  +#LF$+ "Center"+#LF$+"Right"+#LF$+"2.66")
      AddListItem(#List, -1, "Alpha" +#LF$+ "Gamma" +#LF$+"Beta" +#LF$+"1.33")
      AddListItem(#List, -1, "Ärmel" +#LF$+ "Esel"  +#LF$+"Öfen" +#LF$+"2.33")
      AddListItem(#List, -1, "Besen" +#LF$+ "Gans"  +#LF$+"Quark" +#LF$+"10.33")
      AddListItem(#List, -1, "Faden" +#LF$+ "Affe"  +#LF$+"Zebra" +#LF$+"2.33")
      SetColumnFlag(#List, 1, #NoSort|#NoResize)
      SetColumnFlag(#List, 2, #NoEdit)
      SetColumnFlag(#List, 3, #Float) 
      ;SetColumnFlag(#List, 4, #Hide) ; Hide Column 4
    UnuseModule ListIcon
    
    CompilerIf #PB_OS_Windows
      UseModule ListIcon
      DefineListCallback(#List, #Edit|#NoResize)
      JustifyColumn(#List, 1, #Center)
      JustifyColumn(#List, 3, #Right)
      SetFont(#List, FontID(#Font_Arial10B), FontID(#Font_Arial9I))
      UnuseModule ListIcon
      Debug ListIcon::CountColumns(#List)
    CompilerEndIf
    
    ;MessageRequester("ListIcon Test","Sort ListIcon Items")
    ListIcon::SortListItems(#List, 0, ListIcon::#Descending)
    
    ;*************************************************                      FEHLER
    SetGadgetItemState(#List, 0, #PB_ListIcon_Checked); <====== Haken wird nach Einfügen der Spalte gelöscht!
    SetGadgetItemState(#List, 3, #PB_ListIcon_Checked); <====== Haken wird nach Einfügen der Spalte gelöscht!
    MessageRequester("ListIcon Test","Remove Column 1")
    ListIcon::RemoveListColumn(#List, 1)              ; <====== Spalte gelöscht
    MessageRequester("ListIcon Test","Add new Column 1")
    ListIcon::AddListColumn(#List, 1, "Column 1", 80) ; <====== Spalte eingefügt, danach fehlen die Haken und diverse Einträge
                                                              ; und die Daten werden in den Spalten teilweise nach rechts
                                                              ; verschoben. Es erscheinen sogar vorher gelöschte Werte wieder!
    ;*************************************************************************************************************************
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
  
CompilerEndIf
Wie schon in den Kommentaren geschrieben. Wenn man nach dem Löschen einer Spalte wieder eine neue Spalte einfügt, so werden die Haken aus den Checkboxen gelöscht, Daten zum Teil nach rechts in die leere Spalte verschoben und es erscheinen sogar wieder Daten, die durch das Löschen der Spalte vorher nicht mehr existieren sollten.
Ich würde mich freuen, wenn du diesen Fehler beseitigen könntest.

Gruss
Ulrich
PureBasic 5.31 (x32, x64) Windows 7 SP1 (x64)
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von Thorsten1867 »

- Erstes Problem (Löschen von Spalten) gelöst.
- Verzichte probeweise auf das Neuschreiben der Tabelleninhalte nach dem Einfügen der Spalte. Somit sollten eigentlich die Haken erhalten bleiben.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Cebu-Uli
Beiträge: 22
Registriert: 04.09.2007 03:19
Wohnort: Wernigerode

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von Cebu-Uli »

Hallo Thorsten,

Dein AddListColumn() funktioniert leider auch nicht. Du möchtest Spalten nach einer anzugebenden Spalte einfügen (Add columns afterward). Du fügst jedoch nicht dahinter, sondern an Stelle der Spalte ein. Das funktioniert bei Spalte 0 aber überhaupt nicht, wie das folgende Beispiel zeigt:

Code: Alles auswählen

CompilerIf #PB_Compiler_IsMainFile
  #Window = 0
  #List   = 1
  #Font_Arial10B = 2
  #Font_Arial9I  = 3
  
  LoadFont(#Font_Arial10B,"Arial",10,#PB_Font_Bold)
  LoadFont(#Font_Arial9I,"Arial",9,#PB_Font_Italic)
  
  If OpenWindow(#Window,0,0,360,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
    ListIconGadget(#List,10,10,340,230,"Column 0",80,#PB_ListIcon_GridLines | #PB_ListIcon_AlwaysShowSelection | #PB_ListIcon_CheckBoxes)
    AddGadgetColumn(#List,1,"Column 1",80)
    AddGadgetColumn(#List,2,"Column 2",80)
    AddGadgetColumn(#List,3,"Number",54)
    AddGadgetColumn(#List,4,"Hide",40)
    UseModule ListIcon
      AddListItem(#List, -1, "Left"  +#LF$+ "Center"+#LF$+"Right"+#LF$+"2.66")
      AddListItem(#List, -1, "Alpha" +#LF$+ "Gamma" +#LF$+"Beta" +#LF$+"1.33")
      AddListItem(#List, -1, "Ärmel" +#LF$+ "Esel"  +#LF$+"Öfen" +#LF$+"2.33")
      AddListItem(#List, -1, "Besen" +#LF$+ "Gans"  +#LF$+"Quark" +#LF$+"10.33")
      AddListItem(#List, -1, "Faden" +#LF$+ "Affe"  +#LF$+"Zebra" +#LF$+"2.33")
      SetColumnFlag(#List, 1, #NoSort|#NoResize)
      SetColumnFlag(#List, 2, #NoEdit)
      SetColumnFlag(#List, 3, #Float) 
      ;SetColumnFlag(#List, 4, #Hide) ; Hide Column 4
    UnuseModule ListIcon
    
    CompilerIf #PB_OS_Windows
      UseModule ListIcon
      DefineListCallback(#List, #Edit|#NoResize)
      JustifyColumn(#List, 1, #Center)
      JustifyColumn(#List, 3, #Right)
      SetFont(#List, FontID(#Font_Arial10B), FontID(#Font_Arial9I))
      UnuseModule ListIcon
    CompilerEndIf
    
    ;MessageRequester("ListIcon Test","Sort ListIcon Items")
    ListIcon::SortListItems(#List, 0, ListIcon::#Descending)
    
   ;*************************************************           FEHLER
    MessageRequester("ListIcon Test","Remove Column 0")
    ListIcon::RemoveListColumn(#List, 0)              ; <====== Spalte 0 gelöscht
    MessageRequester("ListIcon Test","Add new Column hinter 0")
    ListIcon::AddListColumn(#List, 0, "Hinter 0", 80) ; <====== Neue Spalte hinter 0 eingefügt
                                                      ; Die Spalte wird jedoch nicht hinter 0, sondern als 0 eingefügt
                                                      ; Klickst du auf den Header, um zu sortieren, so ist alles weg!
    ;*****************************************************************************************************************
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
 
CompilerEndIf
Ich habe die fehlerhaften Prozeduren (die 2. hast du ja schon selber korriegiert eingestellt) selber auch neu geschrieben, so dass es jetzt hoffentlich funktioniert:

Code: Alles auswählen

  Procedure AddListColumn(GadgetID.i, Column.i, Titel.s, Width.i) ; Add columns afterward - Neue Version von Cebu-Uli
    Protected GID.s = Str(GadgetID), col.i, ColPos.i = 0, Text$
    AddGadgetColumn(GadgetID, Column+1, Titel, Width)
    ForEach ListIcon(GID)\Item()
      col = 0     
      While col <= CountColumns(GadgetID)-1
        If col = Column+1
          Text$ = Text$ + #LF$ + StringField(ListIcon(GID)\Item()\Text, col+1, #LF$) + #LF$
        Else
          Text$ = Text$ + StringField(ListIcon(GID)\Item()\Text, col+1, #LF$) + #LF$
        EndIf
        col+1
      Wend
      ListIcon(GID)\Item()\Text = Text$
      Text$ = ""       
    Next
  EndProcedure 
  
  Procedure RemoveListColumn(GadgetID.i, Column.i); Neue Version von Cebu-Uli
    Protected GID.s = Str(GadgetID), col.i, Text$
    RemoveGadgetColumn(GadgetID, Column) 
    ForEach ListIcon(GID)\Item()
      col = 0
      While col <= CountColumns(GadgetID)-1
        If col <> Column
          Text$ = Text$ + StringField(ListIcon(GID)\Item()\Text, col+1, #LF$) + #LF$
        EndIf
        col+1
      Wend
      ListIcon(GID)\Item()\Text = Text$
      Text$ = ""
    Next    
  EndProcedure
Gruss
Uli
PureBasic 5.31 (x32, x64) Windows 7 SP1 (x64)
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von Thorsten1867 »

Cebu-Uli hat geschrieben:Hallo Thorsten,
Dein AddListColumn() funktioniert leider auch nicht. Du möchtest Spalten nach einer anzugebenden Spalte einfügen (Add columns afterward). Du fügst jedoch nicht dahinter, sondern an Stelle der Spalte ein. Das funktioniert bei Spalte 0 aber überhaupt nicht, wie das folgende Beispiel zeigt:
Der Ort zum Einfügen stimmt (siehe Hilfe). Es war nur der Kommentar falsch.
Das Problem mit Spalte 0 ist ziemlich sicher nicht meine Schuld, da ich den Orginalbefehl von PB zum Einfügen nutze. Möglicherweise ein Bug?

Ich habe nun ein ReFill-Flag eingefügt, das den Inhalt der Tabelle nach dem Einfügen der Spalte neu befüllt, womit wieder alles an Ort und Stelle ist.
Allerdings dürften somit die Häkchen wieder verschwinden, solange Refill nicht auf #False gesetzt wird.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Cebu-Uli
Beiträge: 22
Registriert: 04.09.2007 03:19
Wohnort: Wernigerode

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von Cebu-Uli »

Leider habe ich schon wieder mehrere Probleme mit deinem Modul. :cry:
Mal abgesehen davon, dass bei AddListColumn() weiterhin bestehende Häkchen aus den Checkboxen verschwinden, so geschieht dasselbe auch, wenn man zum Sortieren auf den Header einer Spalte klickt. Dazu habe ich SortListItems() mal etwas ergänzt:

Code: Alles auswählen

 Procedure SortListItems(GadgetID.i, SortCol.i, Flags.l=#False)
    ; Flags: #UserSort / #Descending / #Ascending / #CaseSensitive / #CaseInSensitive
    ; SortCol: #Default (if #UserSort)
    Protected Row.i, GID.s = Str(GadgetID), ColumnFlag = ListIcon(GID)\Column(Str(SortCol))
    
    ; --------------------------------------------------------- Eingefügt vonCebu-Uli ------------------------------
    ;bewirkt, dass beim Sortieren oder Klick auf den Header einer Tabellenspalte die Checkbox-Inhalte nicht verloren gehen
    Protected.i i
    
    For i = 0 To CountGadgetItems(GadgetID)-1
      If GetGadgetItemState(GadgetID, i) = #PB_ListIcon_Checked
        SetListItemData(GadgetID, i, 1)
      Else
        SetListItemData(GadgetID, i, 0)
      EndIf
    Next i
    ; ------------------------------------------------------------------------------------------------------------------    
    
    If ListSize(ListIcon(GID)\Item())
      If ColumnFlag & #Integer   ;{ Sort Integer
        SetSortOrderInteger(GadgetID, Flags, SortCol)
        If Flags & #Descending
          SortStructuredList(ListIcon(GID)\Item(), #PB_Sort_Descending, OffsetOf(ListItemStructure\SortInteger), TypeOf(ListItemStructure\SortInteger))
        Else
          SortStructuredList(ListIcon(GID)\Item(), #PB_Sort_Ascending, OffsetOf(ListItemStructure\SortInteger), TypeOf(ListItemStructure\SortInteger))
        EndIf ;}
      ElseIf ColumnFlag & #Float ;{ Sort Float
        SetSortOrderFloat(GadgetID, Flags, SortCol)
        If Flags & #Descending
          SortStructuredList(ListIcon(GID)\Item(), #PB_Sort_Descending, OffsetOf(ListItemStructure\SortFloat), TypeOf(ListItemStructure\SortFloat))
        Else
          SortStructuredList(ListIcon(GID)\Item(), #PB_Sort_Ascending, OffsetOf(ListItemStructure\SortFloat), TypeOf(ListItemStructure\SortFloat))
        EndIf ;}
      ElseIf ColumnFlag & #UserSort ;{ Sort User
        SetSortUserOrder(GadgetID, Flags, SortCol)
        If Flags & #Descending
          SortStructuredList(ListIcon(GID)\Item(), #PB_Sort_Descending, OffsetOf(ListItemStructure\Sort), TypeOf(ListItemStructure\Sort))
        Else
          SortStructuredList(ListIcon(GID)\Item(), #PB_Sort_Ascending, OffsetOf(ListItemStructure\Sort), TypeOf(ListItemStructure\Sort))
        EndIf
      Else                       ;{ Sort String
        If Flags & #UserSort
          SetSortUserOrder(GadgetID, Flags, SortCol)
        Else
          SetSortOrder(GadgetID, Flags, SortCol)
        EndIf
        If Flags & #Descending
          SortStructuredList(ListIcon(GID)\Item(), #PB_Sort_Descending, OffsetOf(ListItemStructure\Sort), TypeOf(ListItemStructure\Sort))
        Else
          SortStructuredList(ListIcon(GID)\Item(), #PB_Sort_Ascending, OffsetOf(ListItemStructure\Sort), TypeOf(ListItemStructure\Sort))
        EndIf ;}
      EndIf
      ClearGadgetItems(GadgetID) 
      ForEach ListIcon(GID)\Item()
        AddGadgetItem(GadgetID, Row, ListIcon(GID)\Item()\Text)
        SetGadgetItemData(GadgetID, Row, ListIcon(GID)\Item()\ItemData)
        Row + 1
      Next
      
    ; --------------------------------------------------------- Eingefügt von Cebu-Uli ------------------------------
    ;bewirkt, dass beim Sortieren oder Klick auf den Header einer Tabellenspalte die Checkbox-Inhalte nicht verloren gehen 
      
      For i = 0 To CountGadgetItems(GadgetID)-1
        If GetListItemData(GadgetID, i) = 1
          SetGadgetItemState(GadgetID, i, #PB_ListIcon_Checked)
        EndIf
      Next i
    ; ------------------------------------------------------------------------------------------------------------------      
      
    EndIf
  EndProcedure
Wenn man im ListIcon rechts noch Platz neben der letzten Spalte hat und man klickt in diesen Bereich mit Doppelklick, so crasht das Modul in ListIconCallback(), weil dort width > 32767 wird. Das habe ich mit der folgenden Zeile einfach abgefangen:

Code: Alles auswählen

If width > 32767 : width = 32767 : EndIf
Das nächste Problem betrifft ebenfalls diese Prozedur. Nach DefineListCallback() funktioniert SetColumnFlag() mit dem Parameter #Hide nicht mehr, ebensowenig wie der Original-PB-Befehl SetGadgetItemAttribute().
Dazu habe ich ebenfalls Änderungen in ListIconCallback() vorgenommen. Deshalb hier die komplette Procedure:

Code: Alles auswählen

Procedure.i ListIcon_CallBack(hWnd, Message, wParam, lParam)
        Protected.i Column, x, y, width, height, i
        Protected *ListEdit.ListEditStructure = GetWindowLongPtr_(hWnd, #GWL_USERDATA)
        Protected *Header.HD_NOTIFY, *nm.NMHDR, *nmhdr.NMHEADER, MouseClick.LVHITTESTINFO, rect.rect
        Protected HDItem.HD_ITEM, ColsCount.i = SendMessage_(*ListEdit\HeaderHnd, #HDM_GETITEMCOUNT, 0, 0)
        Protected GID.s=Str(*ListEdit\GadgetID), SortDirection.l, Flags.l = ListIcon(GID)\Flags
        Protected Result.i = CallWindowProc_(*ListEdit\CallBack, hWnd, Message, wParam, lParam)
        Select Message
          Case #WM_NOTIFY            ;{ ListIcon
            If Flags & #Edit         ;{ Edit
              *nm = lParam
              If *nm\hWndFrom = *ListEdit\HeaderHnd
                StopListEdit(*ListEdit)
              EndIf
            EndIf ;}
            *nmhdr = lParam          ;{ Column NoResize/Hide
            If *nmhdr\hdr\code = #HDN_ITEMCHANGING
              Column = *nmhdr\iItem
              ;==========================================================================
              ;Original
              ;If ListIcon(GID)\Column(Str(Column)) & #NoResize Or ListIcon(GID)\Column(Str(Column)) & #Hide Or Flags & #NoResize
              ;  Result=#True
              ;EndIf
              
              ;Änderung durch Cebu-Uli
              If ListIcon(GID)\Column(Str(Column)) & #NoResize Or Flags & #NoResize
                Result=#True
              EndIf
              If ListIcon(GID)\Column(Str(Column)) & #Hide
                Result=#False
              EndIf
            ;===========================================================================  
            EndIf ;}
            *Header = lParam         ;{ Header Click 
            If *Header\hdr\code=#HDN_ITEMCLICK
              Column = *Header\iItem
              If Not ListIcon(GID)\Column(Str(Column)) & #NoSort
                HDItem\mask = #HDI_FORMAT
                For i = 0 To ColsCount - 1
                  If i <> column   
                    SendMessage_(*ListEdit\HeaderHnd, #HDM_GETITEM, i, HDItem)
                    HDItem\fmt & ~ (#HDF_SORTDOWN | #HDF_SORTUP)
                    SendMessage_(*ListEdit\HeaderHnd, #HDM_SETITEM, i, HDItem)
                  EndIf
                Next
                SendMessage_(*ListEdit\HeaderHnd, #HDM_GETITEM, Column, HDItem)
                If HDItem\fmt & #HDF_SORTDOWN                             
                  HDItem\fmt & ~ #HDF_SORTDOWN
                  HDItem\fmt | #HDF_SORTUP
                  SortDirection = #Descending
                Else
                  HDItem\fmt & ~ #HDF_SORTUP
                  HDItem\fmt | #HDF_SORTDOWN
                  SortDirection = #Ascending
                EndIf
                Flags & ~ (#Ascending|#Descending)
                SendMessage_(*ListEdit\HeaderHnd, #HDM_SETITEM, Column, HDItem)
                SortListItems(*ListEdit\GadgetID, Column, Flags|SortDirection)
              EndIf
            EndIf ;}
                  ;}
          Case #WM_MOUSEMOVE         ;{ Mouse position
            If *ListEdit\EditFlag = #False
              *ListEdit\lParam = lParam
            EndIf ;}
          Case #WM_VSCROLL, #WM_HSCROLL, #WM_RBUTTONDOWN, #WM_LBUTTONDOWN ;{
            StopListEdit(*ListEdit)
            ;}
          Case #WM_LBUTTONDBLCLK     ;{ Left mouse button   
            If Flags & #Edit
              StopListEdit(*ListEdit)
              MouseClick\pt\x = *ListEdit\points\x  ; \points <- #WM_MOUSEMOVE
              MouseClick\pt\y = *ListEdit\points\y 
              SendMessage_(hWnd, #LVM_SUBITEMHITTEST, 0, MouseClick)           
              *ListEdit\Row    = MouseClick\iitem
              *ListEdit\Column = MouseClick\iSubItem
              If Not ListIcon(GID)\Column(Str(MouseClick\iSubItem)) & #NoEdit  
                rect\top    = *ListEdit\Column         
                rect\left   = #LVIR_LABEL
                SendMessage_(hWnd, #LVM_GETSUBITEMRECT, *ListEdit\Row, rect)               
                *ListEdit\CellText = GetGadgetItemText(*ListEdit\GadgetID, *ListEdit\Row, *ListEdit\Column)               
                x = rect\left + 1
                y = rect\top  + 0
                width  = rect\right  - rect\left - 1
                If width > 32767 : width = 32767 : EndIf; <======= Eingefügt von Cebu-Uli, da es bei width > 32767 beim ResizeGadget zum Crash kommt ========
                height = rect\bottom - rect\top  - 0
                ResizeGadget(*ListEdit\StrgID, x, y, width, height)
                SetGadgetText(*ListEdit\StrgID, *ListEdit\CellText)
                HideGadget(*ListEdit\StrgID, 0)
                SetActiveGadget(*ListEdit\StrgID)
                *ListEdit\EditFlag = #True
              EndIf
            EndIf
            ;}
        EndSelect
        ProcedureReturn Result
      EndProcedure
Das sind natürlich nur meine Lösungsvorschläge. Hat bei mir erst einmal funktioniert, ist aber sicherlich noch nicht genug getestet. Du darfst es gerne besser machen! Ist schließlich dein Modul.

Viele Grüße

Uli
PureBasic 5.31 (x32, x64) Windows 7 SP1 (x64)
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von Thorsten1867 »

Bugfixes in Bezug auf Hinzufügen und Entfernen von Spalten.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
chrischan
Beiträge: 4
Registriert: 12.10.2013 21:01

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von chrischan »

Top Modul :allright:

Ist es vorgesehen, dass Images hinzugefügt werden können (setgadgetitemimage()) weil die verschwinden beim Sortieren automatisch?

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

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von Thorsten1867 »

Update:
- Changed: AddListItem(GadgetID.i, Position.i, Text.s, UserSort.s="", ImageID.i=#False)
- Add: SetListItemImage(GadgetID.i, Position.i, ImageID.i)
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
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

Re: Module: ListIcon Plus - Edit & Sort (deu.)

Beitrag von ts-soft »

Ein paar Fehlermeldungen zu Linux:
Zeile 336: ListIconID nicht definiert
Zeile 381: Structure field not found: ImageID

Gruß
Thomas
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