Hänger bei ListIconGadget mit TileView

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Hänger bei ListIconGadget mit TileView

Beitrag von jacdelad »

Hallo,
ich versuche gerade einen Code, den ich in XProfan geschrieben habe, nach PureBasic zu übersetzen. Mit dem ist es per Windows API möglich ein ListIconGadget in TileView umzuschalten.
Allerdings habe ich einen totalen Hänger, sicher nur ein Verständnisproblem. Mit dem folgenden Code kann ich TileView aktivieren, festlegen, dass noch 2 Zeilen angezeigt werden, aber der dritte Aufruf, der für ein Element festlegt, welche weiteren Zeilen angezeigt werden sollen, schlägt fehlt. Kann mir da jemand weiterhelfen?

Code: Alles auswählen

EnableExplicit

Structure LVTILEVIEWINFO
  cbSize.l
  dwMask.l
  dwFlags.l
  sizeTile.SIZE
  cLines.l
  rcLabelMargins.RECT
EndStructure
Structure LVTILEINFO
  cbSize.l
  iItem.l
  cColumns.l
  puColumns.l
EndStructure

Define window_0, listicon_0
Define lvti.LVTILEINFO,lvtvi.LVTILEVIEWINFO,*Tiles

window_0=OpenWindow(#PB_Any,0,0,400,300,"Test",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
listicon_0=ListIconGadget(#PB_Any,0,0,400,300,"Maschine",120)
AddGadgetColumn(listicon_0,1,"Typ",100)
AddGadgetColumn(listicon_0,2,"Modell",100)
Debug SendMessage_(GadgetID(listicon_0),#LVM_SETVIEW,#LV_VIEW_TILE,0)
lvtvi\cbSize=SizeOf(lvtvi)
lvtvi\dwMask=2;#LVTVIM_COLUMNS
lvtvi\cLines=2
Debug SendMessage_(GadgetID(listicon_0),#LVM_SETTILEVIEWINFO,0,@lvtvi)
Debug SendMessage_(GadgetID(listicon_0),#LVM_ARRANGE,0,0)

AddGadgetItem(listicon_0,-1,"Test"+Chr(10)+"Test2"+Chr(10)+"Test3")
AddGadgetItem(listicon_0,-1,"Test"+Chr(10)+"Test2"+Chr(10)+"Test3")
AddGadgetItem(listicon_0,-1,"Test"+Chr(10)+"Test2"+Chr(10)+"Test3")
lvti\cbSize=SizeOf(lvti)
*Tiles=AllocateMemory(8)
PokeL(*Tiles,1)
PokeL(*Tiles+4,2)
lvti\iItem=0
lvti\cColumns=2
lvti\puColumns=*Tiles
;Fehlschlag:
Debug SendMessage_(GadgetID(listicon_0),#LVM_SETTILEINFO,0,@lvti)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case window_0;Hauptfenster
          Break
          
      EndSelect
  EndSelect
ForEver
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Hänger bei ListIconGadget mit TileView

Beitrag von jacdelad »

...Fehler gefunden, es funktioniert nur unter 32 Bit. Jetzt muss ich es nur noch unter 64 Bit zum Laufen kriegen.

Nachtrag:
puColumns.l durch puColumns.i ersetzen, ok, aber es klappt trotzdem nicht. Weiß jemand Rat? Ich glaube es liegt am *Tiles-Speicherbereich.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Benutzeravatar
jacdelad
Beiträge: 404
Registriert: 03.02.2021 13:39
Wohnort: Riesa
Kontaktdaten:

Re: Hänger bei ListIconGadget mit TileView

Beitrag von jacdelad »

Fehler gefunden: cColumns.l muss auch cColumns.i sein. Jetzt geht alles.
Guten Morgen, das ist ein schöner Tnetennba!

PureBasic 6.21/Windows 11 x64/Ryzen 7900X/32GB RAM/3 TB SSD
Synology DS1821+/DX517, 130.9TB+50.8TB+2TB SSD
Antworten