purebasic.info

PureBasic forum
Текущее время: Вс апр 22, 2018 9:59 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Пн фев 19, 2018 8:52 am 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 14
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Имеется вот такой код:
Код:
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
;Autor: Kurzer
;http://www.purebasic.fr/german/viewtopic.php?p=250562#p250562
 
;EnableExplicit
 
Procedure SetGadgetItemIcon(iGadgetNr.i, iRow.i, iCol.i, iIcon.i, iSet.i)
  Protected lvi.lv_item
  lvi\mask     = #LVIF_IMAGE
  lvi\iItem    = iRow     ; row number for change
  lvi\iSubItem = iCol     ; 2nd subitem
  lvi\pszText  = #Null   ; text to change to
   If iSet
     lvi\iImage   = iIcon   ; Icon setzen
   Else
     lvi\iImage   = -1            ; Icon lцschen
   EndIf
  SendMessage_(GadgetID(iGadgetNr), #LVM_SETITEM, 0, @lvi)
EndProcedure
 
Define iGadgetNr.i, hListIconGadget.i, hImlImages.i, iStyle.i, Event.i, Center.LV_COLUMN, Column
Define sText.s
 
If OpenWindow(0, 100, 100, 450, 200, "Icons in allen ListIcon-Spalten, nicht nur in der ersten.", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 
   ; ListIconGadget anlegen
   iGadgetNr = ListIconGadget(#PB_Any, 5, 5, 440, 190, "Dummy", 50, #PB_ListIcon_GridLines|#PB_ListIcon_HeaderDragDrop|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
 
   ; 4 weitere Spalten zufьgen
   AddGadgetColumn(iGadgetNr, 1, "1", 16)
   AddGadgetColumn(iGadgetNr, 2, "2", 100)
   AddGadgetColumn(iGadgetNr, 3, "3", 80)
   AddGadgetColumn(iGadgetNr, 4, "4", 80)
   
   ; Und drei Beispiel-Zeilen erzeugen
   AddGadgetItem(iGadgetNr, -1, #LF$ + "" + #LF$ + " Ernst" + #LF$ + " hungrig")
   AddGadgetItem(iGadgetNr, -1, #LF$ + "" + #LF$ + " Karl" + #LF$ + " faul")
   AddGadgetItem(iGadgetNr, -1, #LF$ + "" + #LF$ + " Gabi" + #LF$ + " schцn")
 
    hListIconGadget = GadgetID(iGadgetNr)
 
   ; Eine Imagelist aufbauen
   CatchImage(0, ?Test)
   hImlImages = ImageList_Create_(16, 16, #ILC_COLOR32 | #ILC_MASK, 0, 8)   ; | #ILC_MASK
    ImageList_AddMasked_(hImlImages, ImageID(0), #CLR_NONE)
   
   ; Das "PB-eigenen" Image ist jetzt nicht mehr nцtig, weil es in die ImageList kopiert wurde
   FreeImage(0)
 
   ; Die Imagelist dem ListIconGadget zuordnen
   SendMessage_(hListIconGadget, #LVM_SETIMAGELIST, #LVSIL_SMALL, hImlImages)
   
   ; Jetzt dem ListIconGadget sagen, daЯ es auch in SubItems Icons anzeigel soll/darf
  iStyle = SendMessage_(hListIconGadget, #LVM_GETEXTENDEDLISTVIEWSTYLE , 0, 0) | #LVS_EX_SUBITEMIMAGES
  SendMessage_(hListIconGadget, #LVM_SETEXTENDEDLISTVIEWSTYLE , 0, iStyle)
 
;   SendMessage_(hListIconGadget, #LVM_SETTEXTBKCOLOR , 0, #White)
;   SendMessage_(hListIconGadget, #LVM_SETBKCOLOR, 0, #White)
 
   ;Die blцden, per default gesetzen Icons in Spalte 0 entfernen
    SetGadgetItemIcon(iGadgetNr, 0, 0, 0, #False)
    SetGadgetItemIcon(iGadgetNr, 1, 0, 0, #False)
    SetGadgetItemIcon(iGadgetNr, 2, 0, 0, #False)
 
   ;Jetzt die Icons nachtrдglich in die Spalten setzen
    SetGadgetItemIcon(iGadgetNr, 0, 1, 2, #True)
    SetGadgetItemIcon(iGadgetNr, 1, 1, 2, #True)
    SetGadgetItemIcon(iGadgetNr, 2, 1, 2, #True)
   
    SetGadgetItemIcon(iGadgetNr, 0, 2, 1, #True)
    SetGadgetItemIcon(iGadgetNr, 1, 2, 1, #True)
    SetGadgetItemIcon(iGadgetNr, 2, 2, 0, #True)
   
    SetGadgetItemIcon(iGadgetNr, 0, 4, 2, #True)
    SetGadgetItemIcon(iGadgetNr, 1, 4, 2, #True)
    SetGadgetItemIcon(iGadgetNr, 2, 4, 2, #True)
   
    ;;;;;;;;;;;;;;;; Center
    Center.LV_COLUMN\mask=#LVCF_FMT
    Center\fmt=#LVCFMT_CENTER
    For i=0 To 4
      SendMessage_(GadgetID(iGadgetNr), #LVM_SETCOLUMN,i,@Center)
    Next
    ;;;;;;;;;;;;;;;;
   
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
   
    ; Am Ende die Imagelist wieder freigeben
    ImageList_Destroy_(hImlImages)
EndIf
 
DataSection
   ; Dies ist ein 16 Farben BMP Image mit 48 x 16 Pixeln AusmaЯe (also quasi drei 16 x 16 Pixel groЯe Images nebeneinander)
   Test:
  ; IncludeBinary "test.bmp"
  Data.l $01F64D42,$00000000,$00760000,$00280000,$00300000,$00100000,$00010000,$00000004,$01800000,$00000000
  Data.l $00000000,$00000000,$00000000,$02040000,$FEFC00FC,$02FC00FC,$00000004,$FC820000,$3A00002D,$3C0000FF
  Data.l $00000091,$5500007C,$01000001,$02000000,$00000000,$E9910000,$43B10061,$003700AC,$007E0080,$1111007C
  Data.l $11111111,$11111111,$11111111,$11111111,$11111111,$11111111,$11111111,$11111111,$11111111,$11111111
  Data.l $11111111,$11111111,$11111111,$10111111,$10111101,$11111101,$11111111,$11111111,$11222211,$11111111
  Data.l $00111100,$11111111,$11111111,$11111111,$21222212,$11111111,$01000010,$11111111,$11111111,$11111111
  Data.l $22111122,$11111111,$11000011,$11111111,$11881811,$12111111,$12111121,$11111121,$11111111,$11111111
  Data.l $81888811,$11111111,$11211211,$11111111,$11011011,$11111111,$88888818,$11111111,$11211211,$11111111
  Data.l $11011011,$11111111,$88888818,$11111111,$11211211,$11111111,$11011011,$11111111,$88888818,$12111111
  Data.l $12111121,$10111121,$10111101,$11111101,$81888811,$22111111,$22111122,$00111122,$00111100,$11111100
  Data.l $11881811,$22111111,$22111122,$00111122,$00111100,$11111100,$11111111,$12111111,$12111121,$10111121
  Data.l $10111101,$11111101,$11111111,$11111111,$11111111,$11111111,$11111111,$11111111,$11111111,$11111111
  Data.l $11111111,$11111111,$11111111,$11111111,$11111111
  Data.b $11,$11
  TestEnd:
EndDataSection


Помогите расположить иконки по центру колонки.
То есть в колонке будет только картинка, без текста.
Я только смог расположить текст по центру, вписав код выделенный текстом ;;;;;;;;;;;;;;;; Center
И если возможно, то вместо bmp изображения, хотелось бы использовать png с прозрачным фоном.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB