purebasic.info

PureBasic forum
Текущее время: Ср сен 19, 2018 4:33 am

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




Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 8:28 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
То же самое, обработка события, только на более примитивном уровне.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 10:02 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11255
Благодарил (а): 4 раз.
Поблагодарили: 429 раз.
kvitaliy писал(а):
Но Фред это не предусмотрел.
Фред здесь причем? В винде функция Delay вызывает WinAPI функцию Sleep. Скорее дело в разработчиках винды, которые не предусмотрели автоматическую обработку событий окна (хотя бы отвечающих за прорисовку содержимого окна) при выполнении функции Sleep.

Зачем нужна пауза при создании окна?

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 10:49 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
А что Фреду мешало написать свой аналог sleep и doevents?

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 12:30 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пн июн 13, 2016 11:46 am
Сообщений: 30
Откуда: Самарская обл
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
kvitaliy, спасибо. Правда, это еще не для моих мозгов, но может потом разберусь)
newJS писал(а):
Код:
1
2
Repeat:Until WindowEvent()=#W
Delay(3000)


#W ??? У меня эту строку не принимает
Пётр писал(а):
Зачем нужна пауза при создании окна?


Пауза мне конечно же нужна для других целей, это просто в качестве примера привел.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 12:49 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11255
Благодарил (а): 4 раз.
Поблагодарили: 429 раз.
kvitaliy писал(а):
А что Фреду мешало написать свой аналог sleep и doevents?
Предложите ему это сделать. :) http://www.purebasic.fr/english/viewforum.php?f=3

Сталекс писал(а):
Пауза мне конечно же нужна для других целей
Обычно в таких случаях используют таймер или параллельный поток. :)

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 1:25 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пн июн 13, 2016 11:46 am
Сообщений: 30
Откуда: Самарская обл
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Пётр писал(а):
Обычно в таких случаях используют таймер или параллельный поток. :)

Сценарий такой:
1. Картинка с кнопкой
2. Нажимаем кнопку
3. Рисуется Канвас с картинкой
4. Ждем 3 с
5. Выводится спрайт 1
6. Ждем 5 с
7. Выводится спрайт 2
Использовал на 4, 6 шаге Delаy, но Канвас не появляется на шаге 3. Значит, тут лучше таймер использовать (до потоков еще не дорос)?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 2:57 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
Сталекс писал(а):
Пётр писал(а):
Обычно в таких случаях используют таймер или параллельный поток. :)

Сценарий такой:
1. Картинка с кнопкой
2. Нажимаем кнопку
3. Рисуется Канвас с картинкой
4. Ждем 3 с
5. Выводится спрайт 1
6. Ждем 5 с
7. Выводится спрайт 2
Использовал на 4, 6 шаге Delаy, но Канвас не появляется на шаге 3. Значит, тут лучше таймер использовать (до потоков еще не дорос)?


Я бы вообще переписал всё твоё творчество под OpenWindowedScreen
Гармоничная работа со спрайтами, нативное масштабирование, повороты, прозрачность и любые игровые приемы.
И конечно, при расписанном сценарии нужен таймер, или несколько. Потоки тут ни каким боком не лезут. Потоки позволяют одновременно выполнять несколько задач, а у тебя наоборот - последовательно в строго отведенное время.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 5:26 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пн июн 13, 2016 11:46 am
Сообщений: 30
Откуда: Самарская обл
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
kvitaliy писал(а):
Я бы вообще переписал всё твоё творчество под OpenWindowedScreen

Ну да, я так сначала и начал делать. Но потом столкнулся с трудностями (изменение формы курсора и что-то еще вроде) и мне посоветовали использовать Канвас. С ним все хорошо пошло, но у него свои недостатки оказались :lol:

Вот код:
Код:
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
UseJPEGImageDecoder()
UsePNGImageDecoder()
 
Enumeration
  #WIN_MAIN
  #FILE
 
  #Esperanta
  #Fanca
  #Angla
  #Germana
  #Rusa
  #Pola
 
  #Audio
  #Audio1
  #Image1
  #Image2
  #IMAGE_Back
  #InputText
  #Font
  #Text
  #But1
  #But2
  #But3
  #But4
  #But5
 
  #Canv1
  #Canv=100
EndEnumeration
 
Global n.b  ;число игроков
Global Lnomo1.s,Lnomo2.s ;имена игроков
Global Lmono1.l,Lmono2   ; очки игроков
 
Structure HOMO; имя игрока и его баллы
  Nomo.s
  Mono.l
EndStructure
 
Global NewList Ludistoj.HOMO()
 
Procedure Mes()
  ClearScreen(0)
  StartDrawing(ScreenOutput())
  DrawText(375,20,"Пока все. Работаю над продолжением",RGB(255,200,100),RGB(0,0,0))
  StopDrawing()
  FlipBuffers();
EndProcedure
 
Procedure Pordo()
  CatchSprite(#Image1, ?Image3); дверная табличка
  DisplaySprite(#Image1,320,125)
  ButtonGadget(#But2, 396, 324, 85, 17, "1 LUDISTO")
  ButtonGadget(#But3, 396, 352, 85, 17, "2 LUDISTOJ")
EndProcedure
 
Procedure Bato()
  CatchSound(#Audio1, ?Bat)
      PlaySound(#Audio1)
      ClearScreen(0)
      FlipBuffers()
      Delay(4000)
      CatchSound(#Audio1, ?Gorod)
      PlaySound(#Audio1)
      ClearScreen(0)
      FlipBuffers()
      CatchSprite(#Image1, ?Image1); улица
      ZoomSprite(#Image1,1425,900)
      DisplaySprite(#Image1,-300,-200)
      StartDrawing(ScreenOutput())
      DrawText(375,20,"Oni petas vin eliri",RGB(255,200,100),RGB(0,0,0))
      StopDrawing()
      StopSound(#Audio1)
      Pordo()
  EndProcedure
 
Procedure NovaNomo(s.s) ;ввод имени, проверка на повторение
  f=1                   ;имя свободно
  ForEach Ludistoj(): If s=Ludistoj()\Nomo: f=0: EndIf: Next ;имя занято
    If f=1
      Mes()
    Else
      HideGadget(#But5,1)
      HideGadget(#InputText,1)
      DisplaySprite(#IMAGE_Back,0,0) ; клуб
      CatchSprite(#Image1, ?Image8); охрана1
      DisplayTransparentSprite(#Image1,0,0)
      StartDrawing(ScreenOutput())
      DrawingFont(FontID(#Font))
      DrawText(220,20,"Vi ne estas sinjoro "+s+"!",RGB(255,200,100),RGB(0,0,0))
      DrawText(220,45," Sinjoro "+s+" jam en klubo!",RGB(255,200,100),RGB(0,0,0))
      StopDrawing()
      FlipBuffers(); очень тут важен, не убирать!
      Delay(2000)
      CatchSprite(#Image1, ?Image7,#PB_Sprite_AlphaBlending); Полиция
      DisplayTransparentSprite(#Image1,390,0)
      StartDrawing(ScreenOutput())
      DrawingFont(FontID(#Font))
      DrawText(365,110,"Iru for, uzurputo!",RGB(255,100,50),RGB(0,0,0))
      DrawText(365,135,"Ĉu vi komprenis?",RGB(255,100,50),RGB(0,0,0))
      StopDrawing()
      FlipBuffers();
      Delay(2000)
      CanvasGadget(#Canv1, 250,500 , 300, 90,#PB_Cursor_Hand )
      SetGadgetAttribute(#Canv1, #PB_Canvas_Cursor, #PB_Cursor_Hand)
      StartDrawing(CanvasOutput(#Canv1))
      ;DrawingFont(FontID(#Font))
      FillArea(0,0,1,RGB(0,100,100))
      Line(0,30 , 300, 2,RGB(255,200,100))
      Line(0,60 , 300, 2,RGB(255,200,100))
      DrawText(5,2,"Jes! Tio estis eraro! Mi tuj komprenigos...",RGB(255,200,100),RGB(0,100,100))  
      DrawText(5,32,"Silentu! Policestro estas mia frato! Mi...",RGB(255,200,100),RGB(0,100,100))
      DrawText(5,62,"Ne estu aroganta! Mi plendos! Voku esrto!",RGB(255,200,100),RGB(0,100,100))
      StopDrawing()
      EndIf
     ;Debug f
EndProcedure
 
Procedure Nova(); новый игрок
  HideGadget(#But4,1) ; убираем ненужные элементы
  i=100: ForEach Ludistoj(): HideGadget(i,1): i=i+1: Next
  ;ClearScreen(0)
  DisplaySprite(#IMAGE_Back,0,0) ; клуб
  CatchSprite(#Image1, ?Image6); охрана
  DisplayTransparentSprite(#Image1,0,0)
  StringGadget(#InputText,342,225,135,26,"")
  SetGadgetAttribute(#InputText,#PB_String_MaximumLength,20)
  SetGadgetFont(#InputText,FontID(#Font))
  ButtonGadget(#But5,335,485,80,20,"subskribas")
  SetActiveGadget(#InputText)
  StartDrawing(ScreenOutput())
  DrawingFont(FontID(#Font))
  DrawText(220,20,"Skribu vian nomon",RGB(255,200,100),RGB(0,0,0))
  DrawText(220,45,"kaj subskibu.",RGB(255,200,100),RGB(0,0,0))
  StopDrawing()
EndProcedure
 
Procedure Skribo() ; запись таблицы игроков
  If CreateJSON(0)
    InsertJSONList(JSONValue(0), Ludistoj())
    SaveJSON(0, "Res\Text\Ludistoj.json")
    FreeJSON(0)
    EndIf
EndProcedure
   
Procedure GetNomo(i.l) ;считать имя игрока из экранной таблицы
  SelectElement(Ludistoj(), i-100)
    If Lnomo1=""
      Lnomo1=Ludistoj()\Nomo
      Lmono1=Ludistoj()\Mono
      Else
        Lnomo2=Ludistoj()\Nomo
        Lmono2=Ludistoj()\Mono
      EndIf
    Mes()
EndProcedure
 
Procedure Klubaroj() ; вывод списка игроков на экран
  k= ListSize(Ludistoj())
  If k>0  
    m.l=(500-k*50)/2; сдвиг, чтобы таблица была в центре по оси у
    StartDrawing(ScreenOutput())
    RoundBox(473,m , 313, 70+k*50,30,30,RGB(255,200,100))
    RoundBox(475,2+m,309,66+50*k ,30,30,RGB(120,0,0))
    DrawText(600,8+m,"Klubaroj:",RGB(255,150,170),RGB(120,0,0))
    StopDrawing()
    SortStructuredList(Ludistoj(), 1, OffsetOf(HOMO\Mono), #PB_Integer)
    i=0
    ForEach Ludistoj()
      CanvasGadget(#Canv+i, 480,35+50*i+m , 300, 50,#PB_Cursor_Hand )
      StartDrawing(CanvasOutput(#Canv+i))
      DrawingFont(FontID(#Font))
      FillArea(0,0,1,RGB(120,0,0))
      RoundBox(1,0 , 294, 47,10,10,RGB(255,200,100))
      RoundBox(3,2 , 290, 42,7,7,RGB(0,100,100))
      SetGadgetAttribute(#Canv+i, #PB_Canvas_Cursor, #PB_Cursor_Hand)
      DrawText(10,7,Ludistoj()\Nomo,RGB(255,200,100),RGB(0,100,100))  
      DrawText(230,7,Str(Ludistoj()\Mono),RGB(255,200,100),RGB(0,100,100))
      StopDrawing()
      i=i+1
    Next
  EndIf  
  CatchImage(#Image2,?Image5)
  ButtonImageGadget(#But4,500,85+50*i+m,260,30,ImageID(#Image2)); "новый игрок"
  FlipBuffers()
  ProcedureReturn k
EndProcedure
 
Procedure Komenco2(); выбор игрока, создание нового
  PlaySound(#Audio) ; звонок
  Delay(1500)
  CatchSound(#Audio, ?Pordo) ; дверь
  PlaySound(#Audio)
  ;Delay(1000)
  ClearScreen(RGB(0,0,0))
  HideGadget(#But2,1)
  HideGadget(#But3,1) ;убираем кнопки звонка
  CatchSprite(#IMAGE_Back, ?Image9)
  ZoomSprite(#IMAGE_Back,800,600)
  DisplaySprite(#IMAGE_Back,0,0)
  ;FlipBuffers()
  CatchSprite(#Image2, ?Image4); охрана
  DisplayTransparentSprite(#Image2,0,0)
  Klubaroj(); вывод списка игроков
  StartDrawing(ScreenOutput())
  DrawingFont(FontID(#Font))
  DrawText(220,20,"Bonan vesperon!",RGB(255,200,100))
  DrawText(220,50,"Montru via klubkarto,",RGB(255,200,100))
  DrawText(220,75,"mi petas!",RGB(255,200,100))
  StopDrawing()
  StopSound(#Audio1)
  CatchSound(#Audio1, ?Klubo) ; клуб
  PlaySound(#Audio1)
EndProcedure
   
 
Procedure Komenco1(); движение к воротам, выбор числа игроков
  CatchSound(#Audio, ?Paso)
  PlaySound(#Audio) ;звук шагов
  Delay(300)
  HideGadget(#But1,1)
  For i=1 To 230 Step 2
    ZoomSprite(#Image1,950*(1+i*0.01),600*(1+i*0.01)) ; фон
    DisplaySprite(#Image1,0-i*8,0-i*4.5)
    ZoomSprite(#Image2,270*(1+i*0.01),540*(1+i*0.01))
    DisplayTransparentSprite(#Image2,250-i*7.5, 70-i*3) ; памятник
    FlipBuffers()
    Delay(50)
    Next
  StopSound(#Audio)
  Delay(500)
  Pordo()
EndProcedure
 
;===========================================================================================================
  If LoadJSON(0, "Res\Text\Ludistoj.json");загрузка таблицы рекордов
      ExtractJSONList(JSONValue(0), Ludistoj())
      FreeJSON(0)
    EndIf
    InitSprite()
    InitSound()
    LoadFont(#Font,"arial",15);MTCORSVA
  If OpenWindow(#WIN_MAIN,  0, 0,800, 600,"TradukoLudo", #PB_Window_SystemMenu |#PB_Window_ScreenCentered)
    OpenWindowedScreen(WindowID(#WIN_MAIN), 0, 0,800, 600,1, 0, 0,#PB_Screen_WaitSynchronization)
    SetFrameRate(60)
    CatchSprite(#Image1, ?Image1)
    ZoomSprite(#Image1,950,600)
    DisplaySprite(#Image1,0,0) ;фон
    CatchSprite(#Image2, ?Image2,#PB_Sprite_AlphaBlending)
    ZoomSprite(#Image2,270,540)
    DisplayTransparentSprite(#Image2,250, 70) ;памятник
    ButtonGadget(#But1, 340, 550, 100, 20, "Starto")
    CatchSound(#Audio1, ?Gorod)
    PlaySound(#Audio1)
    EndIf
 
  Repeat
    WEvent= WaitWindowEvent()  
    Select WEvent
          Case #PB_Event_Gadget
            Select EventGadget()
              Case #But1
                Komenco1()   ; движение к воротам, выбор числа игроков
              Case #But2
                CatchSound(#Audio, ?Sonoro1): n=1: Komenco2()
              Case #But3
                CatchSound(#Audio, ?Sonoro2): n=2: Komenco2()
              Case #But4
                Nova() ;Новый игрок
              Case #But5
                If GetGadgetText(#InputText)<>"": NovaNomo(GetGadgetText(#InputText)): EndIf ; записать нового игрока
              Case #Canv To #Canv+11
                If EventType()=#PB_EventType_LeftClick : GetNomo(EventGadget()): EndIf ;считать имя игрока
              Case #Canv1
                If EventType()=#PB_EventType_LeftClick : Bato(): EndIf; выкинуть из клуба
            EndSelect
        EndSelect
  Until WEvent=#PB_Event_CloseWindow
 
DataSection
  Image1:
 IncludeBinary "Res\Bildoj\img1.jpg"
  Image2:
 IncludeBinary "Res\Bildoj\z.png"
  Image3:
 IncludeBinary "Res\Bildoj\Tablo.jpg"
  Image4:
 IncludeBinary "Res\Bildoj\Gard.png"
  Image5:
 IncludeBinary "Res\Bildoj\But1.jpg"
  Image6:
 IncludeBinary "Res\Bildoj\Nova.png"
  Image7:
 IncludeBinary "Res\Bildoj\Pol2.png"
  Image8:
 IncludeBinary "Res\Bildoj\Gard1.png"
  Image9:
 IncludeBinary "Res\Bildoj\Klubo1.jpg"
  Gorod:
 IncludeBinary "Res\Audio\gorod.wav"
  Paso:
 IncludeBinary "Res\Audio\Pas.wav"
  Sonoro1:
 IncludeBinary "Res\Audio\Son1.wav"
  Sonoro2:
 IncludeBinary "Res\Audio\Son2.wav"
  Klubo:
 IncludeBinary "Res\Audio\klubo.wav"
  Pordo:
 IncludeBinary "Res\Audio\Pordo.wav"
  Bat:
 IncludeBinary "Res\Audio\Bat.wav"
EndDataSection
 



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 6:15 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
Курсор в графическом режиме задаётся своим спрайтом. Какие с этим могут быть трудности? Наоборот, любой, какой только можно нарисовать.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 6:35 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пн июн 13, 2016 11:46 am
Сообщений: 30
Откуда: Самарская обл
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
kvitaliy писал(а):
Курсор в графическом режиме задаётся своим спрайтом. Какие с этим могут быть трудности? Наоборот, любой, какой только можно нарисовать.

Да фиг знает, дня два по форуму рыскал, что-т ничего не нарыл. Да, спрайт нарисовать можно, а как стандартный курсор отключить, не нашел. Пишут, что надо использовать HideCursor_() или ShowCursor_(0) но он у меня не работает, сообщается, что в демоверсии не поддерживается.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 7:14 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
Сталекс писал(а):
kvitaliy писал(а):
Курсор в графическом режиме задаётся своим спрайтом. Какие с этим могут быть трудности? Наоборот, любой, какой только можно нарисовать.

Да фиг знает, дня два по форуму рыскал, что-т ничего не нарыл. Да, спрайт нарисовать можно, а как стандартный курсор отключить, не нашел. Пишут, что надо использовать HideCursor_() или ShowCursor_(0) но он у меня не работает, сообщается, что в демоверсии не поддерживается.

Ерунду пишут. Для графического режима делают так:
Код:
1
2
3
4
 
ExamineMouse() ; автоматически скрывает системный курсор
 ; Курсор на экран
 DisplayTransparentSprite(#mouse, MouseX(),MouseY())



Если надо вернуть системный курсор, то
Код:
1
2
3
If IsScreenActive()
              ReleaseMouse(1) ; возвращает управление на  системный курсор
 EndIf



ReleaseMouse(0) - управление на графический курсор.

_________________
read-only


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Сб июн 25, 2016 7:37 pm 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пн июн 13, 2016 11:46 am
Сообщений: 30
Откуда: Самарская обл
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
kvitaliy, большое спасибо. Никогда бы не подумал по названию, что ExamineMouse() отключает курсор. Да и в справке как-то об этом не сказано (хотя я с энглишем не очень-то).


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Вс июн 26, 2016 6:09 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 669
Благодарил (а): 75 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
Сталекс писал(а):
#W ??? У меня эту строку не принимает

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


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Вс июн 26, 2016 7:53 am 
Не в сети
доцент
Аватар пользователя

Зарегистрирован: Пн июн 13, 2016 11:46 am
Сообщений: 30
Откуда: Самарская обл
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
newJS писал(а):
Ясен пень, ты то своё окно как то по другому обозвал, поставь имя своего окна!!!!

О! Так это имя моего окна?! Спасибо!
Тогда делаю так:
Код:
1
2
3
4
5
6
7
8
9
Enumeration
  #W
  EndEnumeration
OpenWindow(#W,  0, 0,800, 600,"",   #PB_Window_SystemMenu)
CanvasGadget(1,20,30,100,200)
Repeat:Until WindowEvent()=#W
Delay(5000)
Repeat
  Until WaitWindowEvent()= #PB_Event_CloseWindow


Код выполняется, но один фиг, Канвас открывается не сразу, а после 5 с.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Языковый тренажер
СообщениеДобавлено: Вс июн 26, 2016 11:24 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11255
Благодарил (а): 4 раз.
Поблагодарили: 429 раз.
newJS писал(а):
ты то своё окно как то по другому обозвал, поставь имя своего окна
Причем тут идентификатор окна? WindowEvent() его не возвращает. Должно быть
Код:
1
Repeat:Until WindowEvent()=0


Код:
1
2
3
4
5
6
7
8
9
10
11
Enumeration
  #W
EndEnumeration
OpenWindow(#W,  0, 0,800, 600,"",   #PB_Window_SystemMenu)
CanvasGadget(1,20,30,100,200)
For i=1 To 10
  Repeat:Until WindowEvent()=0
Next
Delay(5000)
Repeat
Until WaitWindowEvent()= #PB_Event_CloseWindow


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


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

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


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

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


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

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