purebasic.info
http://purebasic.info/phpBB3ex/

на тему ListIconGadget
http://purebasic.info/phpBB3ex/viewtopic.php?f=5&t=1137
Страница 3 из 3

Автор:  pablov [ Сб мар 23, 2013 2:57 pm ]
Заголовок сообщения: 

pwd
Если шибко умный, поправь мой код, всем будет хорошо
PS ни каких наездов, просто пива много :D

Автор:  rnd [ Сб мар 23, 2013 3:24 pm ]
Заголовок сообщения: 

imagelist устанавливают у header (как hdsil_state), а не у listview; и иконки надо добавлять туда

Автор:  repeat [ Ср янв 10, 2018 10:48 am ]
Заголовок сообщения:  Re: на тему ListIconGadget

PureBasic 5.61 (Demo) Пустое окно, в маcсиве данные есть. В 5.31 работает.
Дело в демке ?

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Global Dim Buff.s(100, 1)
 
#LVIF_TEXT = 1
#WM_NOTIFY = 78
#LVN_ODFINDITEM = -179
#LVS_OWNERDATA = 4096
#LVN_GETDISPINFO = -177
#LVN_ODCACHEHINT = -113
#LVM_SETITEMCOUNT = 4143
 
Structure NMHDR
  code.l
  hwndFrom.l
  idFrom.l
EndStructure
 
Structure LVITEM
  cchTextMax.l
  cColumns.l
  iGroup.l
  iGroupId.l
  iImage.l
  iIndent.l
  iItem.l
  iSubItem.l
  lParam.l
  mask.l
  piColFmt.l
  pszText.l
  puColumns.l
  state.l
  stateMask.l
EndStructure
 
Structure NMLVDISPINFO
  hdr.NMHDR
  item.LVITEM
EndStructure
 
Import "user32.lib"
  SendMessage_(hWnd, Msg, wParam, lParam) As "_SendMessageW"
EndImport
 
Procedure WinCallback(hWnd.l, uMsg.l, wParam.l, lParam.l)
  If uMsg <> #WM_NOTIFY
    ProcedureReturn #PB_ProcessPureBasicEvents
  Else
    *nmh.NMHDR = lParam
  EndIf  
 
  If *nmh\code = #LVN_ODCACHEHINT
    ProcedureReturn 0
  EndIf    
 
  If *nmh\code = #LVN_GETDISPINFO
    *nml.NMLVDISPINFO = lParam
    If *nml\item\mask & #LVIF_TEXT
      *nml\item\pszText = @Buff(*nml\item\iItem, *nml\item\iSubItem)
    EndIf
  EndIf
 
  If *nmh\code = #LVN_ODFINDITEM
    ProcedureReturn -1
  EndIf    
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
 
OpenWindow(0, 0, 0, 200, 200, "", #PB_Window_SystemMenu|1)
SetWindowCallback(@WinCallback())
ListIconGadget(0, 0, 0, 200, 200, "0", 70, #LVS_OWNERDATA)
AddGadgetColumn(0, 1, "1", 100)
 
For i= 0 To 99
  Buff(i, 0) = Chr(Random(256))
Next i
SendMessage_(GadgetID(0), #LVM_SETITEMCOUNT, 100, 1)
 
Repeat
  Event.l = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
End


Автор:  bizdon [ Ср янв 10, 2018 12:14 pm ]
Заголовок сообщения:  Re: на тему ListIconGadget

repeat
на полной работает. Если нужна 5.60, то она лежит на руборде.

Автор:  repeat [ Ср янв 10, 2018 3:01 pm ]
Заголовок сообщения:  Re: на тему ListIconGadget

bizdon писал(а):
на полной работает
Спасибо. За руборд знаю :)

Автор:  newJS [ Чт янв 11, 2018 3:52 am ]
Заголовок сообщения:  Re: на тему ListIconGadget

repeat писал(а):
Дело в демке ?

демо не работает с API

Автор:  repeat [ Чт янв 11, 2018 9:50 am ]
Заголовок сообщения:  Re: на тему ListIconGadget

newJS писал(а):
демо не работает с API


Вроде работает :)

Код:
1
2
3
4
5
Import "kernel32.lib"
  Beep_(dwFreq,dwDuration) As "_Beep@8"
EndImport
 
Beep_(300, 300)

Код:
1
2
3
4
5
6
OpenLibrary(0, "kernel32.dll")
*Beep = GetFunction(0, "Beep")
If *Beep
  CallFunctionFast(*Beep, 300, 300)
EndIf
CloseLibrary(0)



А вот #LVN_GETDISPINFO не приходит :?

Автор:  newJS [ Пт янв 12, 2018 7:05 am ]
Заголовок сообщения:  Re: на тему ListIconGadget

repeat писал(а):
Вроде работает

а толку от такой работы? есть конечно, но мало

тебе что то нужно из 560? чего нет в 531?
так ты вроде знаешь где 560

Автор:  repeat [ Пт янв 12, 2018 9:17 am ]
Заголовок сообщения:  Re: на тему ListIconGadget

newJS писал(а):
тебе что то нужно из 560? чего нет в 531?
Ага, лицензию. Нет желания потом разбираться чёй оно не работает. На демку была надежда.
После покупки есть доступ к прежним версиям?

Автор:  Пётр [ Пт янв 12, 2018 11:31 am ]
Заголовок сообщения:  Re: на тему ListIconGadget

repeat писал(а):
Дело в демке ?
Более вероятно что дело в коде. Например
repeat писал(а):
Код:
1
2
3
4
5
Structure NMHDR
  code.l
  hwndFrom.l
  idFrom.l
EndStructure

Должно быть
Код:
1
2
3
4
5
Structure NMHDR
  hwndFrom.i
  idFrom.i
  code.l
EndStructure

Для x64 должно быть также выравнивание структуры.

Автор:  repeat [ Пт янв 12, 2018 11:55 am ]
Заголовок сообщения:  Re: на тему ListIconGadget

Пётр, спасибо!

Автор:  repeat [ Вт фев 20, 2018 12:53 am ]
Заголовок сообщения:  Re: на тему ListIconGadget

И как тут быть?
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
OpenWindow(0, 0, 0, 200, 200, "", #PB_Window_SystemMenu|1)
ListIconGadget(0, 0, 0, 200, 200, "0", 70, #LVS_OWNERDATA)
SetActiveGadget(0)
SendMessage_(GadgetID(0), #LVM_SETITEMCOUNT, 100, 1)
SendMessage_(GadgetID(0), #LVM_ENSUREVISIBLE, 90, 1)
Repeat
  Event.l = WaitWindowEvent()
  For i = 33 To 255
    If GetAsyncKeyState_(i) = -32767
      SendMessage_(GadgetID(0), #LVM_ENSUREVISIBLE, 90, 1)
      Delay (200)
    EndIf
  Next i
Until Event = #PB_Event_CloseWindow
End


Автор:  repeat [ Ср фев 28, 2018 6:18 pm ]
Заголовок сообщения:  Re: на тему ListIconGadget

Затестил несколько примеров с разных форумов и везде одно и то же. Такое впечатление что Virtual ListView это подкласс Rich Edit'a и нужно устанавливать каретку в item. :? Может решение элементарное но я его в упор не вижу.

Автор:  repeat [ Пт мар 02, 2018 10:18 pm ]
Заголовок сообщения:  Re: на тему ListIconGadget

Да вот же, из-за этого:
Код:
1
2
Case #LVN_ODFINDITEM
        ProcedureReturn -1

Рисую то в NM_CUSTOMDRAW вот и удалил этот участок (показавшийся на тот момент бесполезным). Ну надо же так :)

Страница 3 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/