purebasic.info

PureBasic forum
Текущее время: Вт апр 24, 2018 12:10 am

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Баг TreeGadget (PB 4.60)
СообщениеДобавлено: Сб мар 31, 2012 1:19 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11108
Благодарил (а): 4 раз.
Поблагодарили: 395 раз.
Нажмите на кнопку и скажите куда девался флажок.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
OpenWindow(0, 0, 0, 354, 220, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
TreeGadget(0, 10, 10, 334, 160, #PB_Tree_CheckBoxes|#PB_Tree_ThreeState|#PB_Tree_AlwaysShowSelection)
AddGadgetItem(0,-1, "dir1", ExtractIcon_(0, "shell32.dll",2), 0)
 
ButtonGadget(2, 20, 190, 80, 24, "Inbetween")
 
Repeat
  Event = WaitWindowEvent()
 
  If Event = #PB_Event_Gadget And EventGadget()=2
    State = GetGadgetItemState(0, 0)
    State | #PB_Tree_Inbetween
    SetGadgetItemState(0, 0, State)
  EndIf
 
Until Event = #PB_Event_CloseWindow


_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 31, 2012 2:09 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт июн 25, 2009 1:02 pm
Сообщений: 2270
Откуда: Russia — Belarus
Благодарил (а): 5 раз.
Поблагодарили: 71 раз.
Пункты репутации: 11
Жму на кнопку и чекбокс становится серым, в чем баг? Windows 7.

_________________
EnableExplicit User


Последний раз редактировалось qpAHToMAS Сб мар 31, 2012 2:09 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 31, 2012 2:09 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт дек 17, 2009 4:49 pm
Сообщений: 1230
Откуда: г. Ангарск
Благодарил (а): 2 раз.
Поблагодарили: 15 раз.
Пункты репутации: 10
В лине работает, в винде исчезает, а если без использования значка, то не исчезает.

_________________
.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 31, 2012 2:14 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11108
Благодарил (а): 4 раз.
Поблагодарили: 395 раз.
qpAHToMAS писал(а):
Windows 7
На XP попробуй.

lakomet писал(а):
если без использования значка, то не исчезает
Это я знаю, но мне нужны значки.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 31, 2012 2:18 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6246
Благодарил (а): 17 раз.
Поблагодарили: 182 раз.
Пункты репутации: 48
А ты значение State контролировал, там точно корректные значения?

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 31, 2012 2:34 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Чт дек 17, 2009 4:49 pm
Сообщений: 1230
Откуда: г. Ангарск
Благодарил (а): 2 раз.
Поблагодарили: 15 раз.
Пункты репутации: 10
Так не исчезает
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
OpenWindow(0, 0, 0, 354, 220, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
TreeGadget(0, 10, 10, 334, 160, #PB_Tree_CheckBoxes|#PB_Tree_ThreeState|#PB_Tree_AlwaysShowSelection)
AddGadgetItem(0,-1, "dir1", ExtractIcon_(0, "shell32.dll",2), 0)
 
ButtonGadget(2, 20, 190, 80, 24, "Inbetween")
 
Repeat
  Event = WaitWindowEvent()
 
  If Event = #PB_Event_Gadget And EventGadget()=2
    State = GetGadgetItemState(0, 0)
    If State = 8 Or State = 13
      SetGadgetItemState(0, 0, 9)
    Else
      SetGadgetItemState(0, 0, 13)
    EndIf
  EndIf
 
Until Event = #PB_Event_CloseWindow


_________________
.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб мар 31, 2012 9:29 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11108
Благодарил (а): 4 раз.
Поблагодарили: 395 раз.
lakomet писал(а):
Так не исчезает
Мне нужно состояние Inbetween переключателя.
Без этого программа будет не наглядной.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 01, 2012 5:35 am 
Не в сети
доцент

Зарегистрирован: Пт июн 24, 2011 2:55 pm
Сообщений: 68
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Не то чтобы решение, просто прикол:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
OpenWindow(0, 0, 0, 350, 230, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
TreeGadget(0, 10, 10, 330, 160, #PB_Tree_CheckBoxes|#PB_Tree_ThreeState|#PB_Tree_AlwaysShowSelection)
AddGadgetItem(0,-1, "dir1", ExtractIcon_(0, "shell32.dll",2), 0)
ButtonGadget(2, 20, 190, 80, 25, "Inbetween")
 
hstate.l = SendMessage_(GadgetID(0), #TVM_GETIMAGELIST,#TVSIL_STATE, 0)
hicon.l = ImageList_GetIcon_(hstate, 2, #ILD_BLEND50)
ImageList_AddIcon_(hstate, hicon)
 
Repeat
        Event = WaitWindowEvent()
        If Event = #PB_Event_Gadget And EventGadget()=2
                State = GetGadgetItemState(0, 0)
                State | #PB_Tree_Inbetween
                SetGadgetItemState(0, 0, State)
        EndIf
Until Event = #PB_Event_CloseWindow



Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 01, 2012 3:17 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11108
Благодарил (а): 4 раз.
Поблагодарили: 395 раз.
lach писал(а):
Не то чтобы решение, просто прикол
Спасибо за наводку.
Так решил проблему.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
OpenWindow(0, 0, 0, 350, 230, "TreeGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
TreeGadget(0, 10, 10, 330, 160, #PB_Tree_CheckBoxes|#PB_Tree_ThreeState|#PB_Tree_AlwaysShowSelection)
hstate.l = SendMessage_(GadgetID(0), #TVM_GETIMAGELIST, #TVSIL_STATE, 0)
hicon.l = ImageList_GetIcon_(hstate, 3, #ILD_TRANSPARENT)
ImageList_GetIconSize_(hstate, @w, @h)
hNewList=ImageList_Create_(w, h, #ILC_COLOR32 | #ILC_MASK, 2, 2)
ImageList_AddIcon_(hNewList, hicon)
 
AddGadgetItem(0,-1, "dir1",ExtractIcon_(0, "shell32.dll",2), 0)  ;
ButtonGadget(2, 20, 190, 80, 25, "Inbetween")
 
hstate.l = SendMessage_(GadgetID(0), #TVM_GETIMAGELIST,#TVSIL_STATE, 0)
hicon.l = ImageList_GetIcon_(hNewList, 0, #ILD_TRANSPARENT)
ImageList_AddIcon_(hstate, hicon)
ImageList_Destroy_(hNewList)
 
Repeat
  Event = WaitWindowEvent()
  If Event = #PB_Event_Gadget And EventGadget()=2
    State = GetGadgetItemState(0, 0)
    State | #PB_Tree_Inbetween
    SetGadgetItemState(0, 0, State)        
  EndIf
Until Event = #PB_Event_CloseWindow


_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб сен 14, 2013 2:09 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11108
Благодарил (а): 4 раз.
Поблагодарили: 395 раз.
Вроде исправили этот баг. Но походу это баг винды, а не PB, потому что исправляется он изменением последовательности создания (точнее, присвоения гаджету) ImageList'ов.
Сначала нужно присвоить гаджету ImageList' для картинок, а потом уже для галочек (сейчас наоборот).

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


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

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


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

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


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

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