Seite 1 von 1

Hänger bei ListIconGadget mit TileView

Verfasst: 06.04.2021 20:17
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

Re: Hänger bei ListIconGadget mit TileView

Verfasst: 07.04.2021 19:56
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.

Re: Hänger bei ListIconGadget mit TileView

Verfasst: 08.04.2021 16:33
von jacdelad
Fehler gefunden: cColumns.l muss auch cColumns.i sein. Jetzt geht alles.