purebasic.info

PureBasic forum
Текущее время: Пт янв 19, 2018 4:12 pm

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: Сб мар 18, 2017 10:57 pm 
Не в сети
доцент

Зарегистрирован: Чт окт 27, 2011 7:43 pm
Сообщений: 64
Откуда: Санкт-Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Имеется гаджет OptionGadget из нескольких элементов.
При принудительном изменении состояния, например при загрузке сохранённых значений, система реагирует на это как будто происходит клик мышью или клавиатурой.
Под Виндой всё нормально (т.е. реакция отсутствует).
Можно ли это как-то победить?
PB v 5.11

_________________
ICQ нет, и, в ближайшее время, не будет


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс мар 19, 2017 5:57 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 540
Благодарил (а): 53 раз.
Поблагодарили: 15 раз.
Пункты репутации: 5
Пингвина нет, не знаю, под виндой всё нормально.
Первая мысля, а ты правильно опрашиваешь гаджеты? ну не может такого быть, в этом смысла нет, получается что чеки и оптионы неуправляемы.
Вторая мысля, добавить флаг.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс мар 19, 2017 11:20 pm 
Не в сети
доцент

Зарегистрирован: Чт окт 27, 2011 7:43 pm
Сообщений: 64
Откуда: Санкт-Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
newJS писал(а):
под виндой всё нормально
А я что написАл?

_________________
ICQ нет, и, в ближайшее время, не будет


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн мар 20, 2017 6:14 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 540
Благодарил (а): 53 раз.
Поблагодарили: 15 раз.
Пункты репутации: 5
Gregory писал(а):
А я что написАл?

ты только это увидел??


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн мар 20, 2017 5:15 pm 
Не в сети
доцент

Зарегистрирован: Чт окт 27, 2011 7:43 pm
Сообщений: 64
Откуда: Санкт-Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
newJS писал(а):
только это увидел??
Просто скромно промолчал.

newJS писал(а):
ты правильно опрашиваешь гаджеты?
А как их можно опрашивать неправильно, да ещё что б под Виндой всё нормально работало?

newJS писал(а):
добавить флаг
Какой, например?

_________________
ICQ нет, и, в ближайшее время, не будет


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн мар 20, 2017 5:42 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
Gregory писал(а):
Какой, например?

Надо не флаг, а ловить событие #PB_EventType_LeftClick, например.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 21, 2017 5:44 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 540
Благодарил (а): 53 раз.
Поблагодарили: 15 раз.
Пункты репутации: 5
Gregory писал(а):
А как их можно опрашивать неправильно, да ещё что б под Виндой всё нормально работало?

в том то и дело, винда позволяет много чего неправильно делать
ты выложи код, гадать бестолку

MrF писал(а):
Надо не флаг, а ловить событие #PB_EventType_LeftClick, например.

да кто ж знает как он там написал, пусть код покажет, может ему и пара флагов не поможет :D


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 21, 2017 4:18 pm 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
newJS писал(а):
да кто ж знает как он там написал, пусть код покажет, может ему и пара флагов не поможет

Если я правильно понял, то у него при SetGadgetState срабатывает функция, которая на гаджет повешена. Как тут флаги помогут? Хотя код конечно желательно посмотреть.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт мар 21, 2017 9:43 pm 
Не в сети
доцент

Зарегистрирован: Чт окт 27, 2011 7:43 pm
Сообщений: 64
Откуда: Санкт-Ленинград
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
MrF писал(а):
при SetGadgetState срабатывает функция, которая на гаджет повешена
Именно так.

MrF писал(а):
код конечно желательно посмотреть.
Глядите. :-)

Код:
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
      Select WorkDevice.u
 
;------ Open Project SisVar1
      Case #SisVar1
 
             CreateDefaultPadStructurVar1 (DefaultPadArayVar1(), ArayFirmWare())
             CreateDefaultSamplesStructurVar1 (MainSamplesArayVar1(), ArayFirmWare(), BegAddressNameSamplesFW, BegAddressDataSamplesFW, *PointerSamplesDataOrigin)
 
           Temp1.a = ReadProjectDumpVar1 (DumpWriteProject(), MainSamplesArayVar1(), DefaultPadArayVar1())
 
           If Temp1 = 1
           ElseIf Temp1 = 0
                CreateDefaultPadStructurVar1 (DefaultPadArayVar1(), ArayFirmWare())
                CreateDefaultSamplesStructurVar1 (MainSamplesArayVar1(), ArayFirmWare(), BegAddressNameSamplesFW, BegAddressDataSamplesFW, *PointerSamplesDataOrigin)
           Else
              MessageRequester(FatalError00$, FatalErrorMes01_00$)
              End
           EndIf
 
      Default
           MessageRequester(FatalError00$, FatalErrorMes01_00$)
           End
      EndSelect
 
 
 
 
 
 
Procedure.a CreateDefaultSamplesStructurVar1 (Array ProcedArea.SamplesStructurVar1(1), Array ArayFirmWareP.a(1), BegAddressNameSamplesFWP.u, BegAddressDataSamplesFWP.u, *PointerSamplesDataOriginP)
 
   For Temp1.a = 0 To AmountSamples-1
 
     ProcedArea(Temp1.a)\DefaultNumberSamples = Temp1
 
      SetDefaultSamplesStructurVar1 (ProcedArea(), ArayFirmWareP(), Temp1, BegAddressNameSamplesFWP.u, BegAddressDataSamplesFWP.u, *PointerSamplesDataOriginP)
 
   Next
 
      SetVolumeStatusBarVar1 (ProcedArea())
 
EndProcedure
 
 
 
 
 
Procedure.a SetDefaultSamplesStructurVar1 (Array ProcedArea.SamplesStructurVar1(1), Array ArayFirmWareP.a(1), NumberProc.a, BegAddressNameSamplesFWP.u, BegAddressDataSamplesFWP.u, *PointerSamplesDataOriginP)
 
       Temp1.a = ProcedArea(NumberProc) \ DefaultNumberSamples
 
            ProcedArea(NumberProc)\SamplesSelectSource.a = 1
            ProcedArea(NumberProc)\SamplesOSAddress.q = ArayFirmWareP(BegAddressDataSamplesFWP.u+Temp1*2)*256*16 + ArayFirmWareP(BegAddressDataSamplesFWP.u+Temp1*2+1)*16
            ProcedArea(NumberProc)\SamplesOSName${16} = PeekS(@ArayFirmWareP()+BegAddressNameSamplesFWP.u+Temp1*16, 16, #PB_Ascii)
 
            CreateSamplesOrigToWavAreys (ProcedArea(), *PointerSamplesDataOriginP, MaxSizeSampleDump, NumberProc)
 
            SetSamplesVar1 (ProcedArea(), NumberProc)
 
            VisibleSamplesGadget (NumberProc)
 
EndProcedure
 
 
 
 
 
Procedure.a SetSamplesVar1 (Array ProcedArea.SamplesStructurVar1(1), ParamProcedur1.a)
 
             SetGadgetState(#SelOptionboxSourceSample1+ParamProcedur1.a*3, 0)
             SetGadgetState(#SelOptionboxSourceSample1+ParamProcedur1.a*3+1, 0)
             SetGadgetState(#SelOptionboxSourceSample1+ParamProcedur1.a*3+2, 0)
             SetGadgetState(#SelOptionboxSourceSample1+ParamProcedur1.a*3+ProcedArea(ParamProcedur1.a)\SamplesSelectSource, 1)
 
             SetGadgetText(#SelNameSample1+ParamProcedur1, ProcedArea(ParamProcedur1)\SamplesOSName${16})
 
EndProcedure
 
 
 
 
 
 
 
 
 
 
   If Event=#PB_Event_Gadget And (Gadget>=#SelOptionboxSourceSample1 And Gadget<#SelOptionboxSourceSample1+AmountSamples*3)
 
         MainSamplesArayVar1((Gadget-#SelOptionboxSourceSample1)/3) \ SamplesSelectSource = (Gadget-#SelOptionboxSourceSample1) % 3
         VisibleSamplesGadgetFull ()
 
        Select (Gadget-#SelOptionboxSourceSample1) % 3
 
        Case 0
 
 
        Case 1
 
             SetDefaultSamplesStructurVar1 (MainSamplesArayVar1(), ArayFirmWare(), (Gadget-#SelOptionboxSourceSample1) / 3, BegAddressNameSamplesFW.u, BegAddressDataSamplesFW.u, *PointerSamplesDataOrigin)
 
        Case 2
 
         TempName1$ = PathOpenFileSourseWav (PathOpenFileWavPred$, Txt_OpenFile$)
             If TempName1$ <> ""
                   PathOpenFileWavPred$ = TempName1$
                     If CreateSamplesWavToDumpAreys (MainSamplesArayVar1(), (Gadget-#SelOptionboxSourceSample1)/3, PathOpenFileWavPred$, CheckBoxSilenceStartYes & 1, CheckBoxSilenceEndYes & 1, TresholdVolume)
 
                          FileNameSource$ = GetFilePart(TempName1$)
                          FileNameSource$ = Left(FileNameSource$, Len(FileNameSource$)-4)
 
                         CorrectionNameWavSample (MainSamplesArayVar1(), FileNameSource$, (Gadget-#SelOptionboxSourceSample1)/3)
 
                     Else
 
                     EndIf
 
            Else
 
            EndIf
 
 
        Default
 
        EndSelect
 
 
 
   ElseIf Event=#PB_Event_Gadget And (Gadget>=#SelNameSample1 And Gadget<#SelNameSample1+AmountSamples) And TypeEvent = #PB_EventType_LostFocus    ; Name Sample
 
          ; Здесь другие действия
 
   Else
 
 
   EndIf
 


_________________
ICQ нет, и, в ближайшее время, не будет


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

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


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

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


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

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