Или глаз замылился или в хелпе нет такого?
Как узнать количество столбцов в таблице типа ListIconGadget()?
Сообщений 1 страница 3 из 3
Поделиться223.11.2011 16:44:34
Нет простого решения для этого.
http://www.rsdn.ru/forum/winapi/2119775.flat.aspx
Забей в гугл запрос узнать количество столбцов в ListView.
В КодАрхиве нашел такой пример, вроде работает хоть и через одно место.
Procedure ListIcon_DeleteColumn(gadget,item)
ProcedureReturn SendMessage_(GadgetID(gadget),#LVM_DELETECOLUMN,item,0)
EndProcedure
Procedure ListIcon_GetColumnCount(gadget)
col.LV_COLUMN\mask = #LVCF_WIDTH
Repeat
a+1:x=SendMessage_(GadgetID(gadget),#LVM_GETCOLUMN,a,@col)
Until x = 0
ProcedureReturn a
EndProcedure
OpenWindow(0,0,0,300,100,"",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ListIconGadget(1,0,0,300,100,"1", 100)
AddGadgetColumn(1,1,"2", 80)
AddGadgetColumn(1,2,"3", 80)
AddGadgetColumn(1,3,"4", 80)
Debug ListIcon_GetColumnCount(1)
ListIcon_DeleteColumn(1,1)
ListIcon_DeleteColumn(1,1)
Debug ListIcon_GetColumnCount(1)
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindowПоделиться323.01.2019 08:54:53
Пришлось на днях вернуться к этому вопросу.
На базе предыдущей идеи сделал вариант без WinAPI
Protected nCol=0, iCol
; узнать количество столбцов
While GetGadgetItemAttribute(#ListIcon_0, 0, #PB_ListIcon_ColumnWidth , nCol)
nCol+1
Wend
P.S.
Тут на http://www.purebasic.info послали меня в https://www.rsbasic.de/winapi-library/
а там есть с WinAPI но просто и точно.
columntotal = SendMessage_(SendMessage_(GadgetID(#ListIcon_0),#LVM_GETHEADER,0,0), #HDM_GETITEMCOUNT,0,0)
"Все уже украдено до нас"
Отредактировано SadStar (23.01.2019 09:19:38)