Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 38

Работа клавишами в гаджетах

15.06.2017, 17:09. Показов 2243. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Помогите разобраться, как использовать (в данном случае) клавишу enter в stringgadget. Задача: есть две строки, написав что-то в первой и нажав enter вывести это куда-то (пока в дебаг) и переместить курсор на вторую. Во второй строке тоже написав что-то вывести это в дебаг и переместить курсор на первую строку. Как правильно это сделать? Вот неправильно работающий набросок:

PureBasic
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
  If OpenWindow(0, 0, 0, 322, 205, "StringGadget Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    StringGadget(0, 8,  10, 306, 20, "")
    AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
    StringGadget(1, 8,  35, 306, 20, "")
    ;AddKeyboardShortcut(0, #PB_Shortcut_Return, 1)
    Repeat
      Event = WaitWindowEvent()
      If Event = #PB_Event_Menu
        Select EventMenu()
          Case 0
            If GetActiveGadget()=0
              Debug GetGadgetText(0)
              SetActiveGadget(1)
              SetGadgetText(1,"")
            EndIf
          Case 1
            If GetActiveGadget()=1
              Debug GetGadgetText(1)
              SetActiveGadget(0)
              SetGadgetText(0,"")
            EndIf       
        EndSelect
      EndIf  
    Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.06.2017, 17:09
Ответы с готовыми решениями:

Работа с клавишами.
Подскажите пожалуйста. Мне нужно чтоб через определённое время нажалась кнопка.?

Работа с клавишами в delphi
Всех приветствую. Есть вот какая задача: Что бы при нажатии f8, постоянно нажималась пробел автоматически. А когда ещё раз нажать f8,...

Работа с клавишами стрелка и т.д
Народ, помогите. Как написать программу типа if("нажата клавиша вверх") { cout << 500; } else if("нажата...

5
Эксперт по электронике
6566 / 3193 / 335
Регистрация: 28.10.2011
Сообщений: 12,474
Записей в блоге: 7
15.06.2017, 19:28
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
If OpenWindow(0, 0, 0, 322, 205, "StringGadget Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  StringGadget(0, 8,  10, 306, 20, "")
  AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
  StringGadget(1, 8,  35, 306, 20, "")
  Repeat
    Event = WaitWindowEvent()
    If Event = #PB_Event_Menu
      Select EventMenu()
        Case 0
          If GetActiveGadget()=0
            Debug GetGadgetText(0)
            SetActiveGadget(1)
            SetGadgetText(1,"")
          ElseIf GetActiveGadget()=1
            Debug GetGadgetText(1)
            SetActiveGadget(0)
            SetGadgetText(0,"")
          EndIf     
      EndSelect
    EndIf  
  Until Event = #PB_Event_CloseWindow
EndIf
0
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 38
16.06.2017, 10:31  [ТС]
Спасибо за помощь. В данном конкретном случае удобно так поступить, но если задача немного усложняется, как решить ее?

PureBasic
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
If OpenWindow(0, 0, 0, 322, 205, "StringGadget Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  PanelGadget (10, 0, 0, WindowWidth(0), WindowHeight(0))
  AddGadgetItem (10, -1, "Закладка 1")
  StringGadget(0, 8,  10, 306, 20, "")
  AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
  StringGadget(1, 8,  35, 306, 20, "")
  StringGadget(2, 8,  65, 306, 20, "")
  AddGadgetItem (10, -1, "Закладка 2")  
  StringGadget(3, 8,  10, 306, 20, "")  
  StringGadget(4, 8,  35, 306, 20, "")
  StringGadget(5, 8,  65, 306, 20, "")
  CloseGadgetList()
  
  Repeat
    Event = WaitWindowEvent()
    If Event = #PB_Event_Menu
      Select EventMenu()
        Case 0
          If GetActiveGadget()=0
            Debug GetGadgetText(0)
            SetActiveGadget(1)
            SetGadgetText(1,"")
          ElseIf GetActiveGadget()=1
            Debug GetGadgetText(1)
            SetActiveGadget(0)
            SetGadgetText(0,"")
          EndIf     
      EndSelect
    EndIf  
  Until Event = #PB_Event_CloseWindow
EndIf
0
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 38
19.06.2017, 16:05  [ТС]
Когда узнал, что ElseIF, в отличии от IF, можно использовать несколько раз в одном условии, то всё стало просто. Не мешало бы отразить это в хелпе. Если у кого с фантазией та же история, что и у меня, то вот что получилось:

PureBasic
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
If OpenWindow(0, 0, 0, 322, 205, "StringGadget Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  PanelGadget (10, 0, 0, WindowWidth(0), WindowHeight(0))
  AddGadgetItem (10, -1, "Закладка 1")
  StringGadget(0, 8,  10, 306, 20, "")
  AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
  StringGadget(1, 8,  35, 306, 20, "")
  StringGadget(2, 8,  65, 306, 20, "")
  AddGadgetItem (10, -1, "Закладка 2")  
  StringGadget(3, 8,  10, 306, 20, "")  
  StringGadget(4, 8,  35, 306, 20, "")
  StringGadget(5, 8,  65, 306, 20, "")
  CloseGadgetList()
  
  Repeat
    Event = WaitWindowEvent()
    If Event = #PB_Event_Menu
      Select EventMenu()
        Case 0
          If GetActiveGadget()=0
            Debug GetGadgetText(0)
            SetActiveGadget(1)
            SetGadgetText(1,"")
          ElseIf GetActiveGadget()=1
            Debug GetGadgetText(1)
            SetActiveGadget(2)
            SetGadgetText(2,"")
          ElseIf GetActiveGadget()=2
            Debug GetGadgetText(2)
            SetActiveGadget(0)
            SetGadgetText(0,"")
          ElseIf GetActiveGadget()=3
            Debug GetGadgetText(3)
            SetActiveGadget(4)
            SetGadgetText(4,"")   
          ElseIf GetActiveGadget()=4
            Debug GetGadgetText(4)
            SetActiveGadget(5)
            SetGadgetText(5,"")
          ElseIf GetActiveGadget()=5
            Debug GetGadgetText(5)
            SetActiveGadget(3)
            SetGadgetText(3,"")
          EndIf          
      EndSelect
    EndIf  
  Until Event = #PB_Event_CloseWindow
EndIf
0
Эксперт по электронике
6566 / 3193 / 335
Регистрация: 28.10.2011
Сообщений: 12,474
Записей в блоге: 7
20.06.2017, 12:09
Лучший ответ Сообщение было отмечено spycor как решение

Решение

Можно сделать проще.
PureBasic
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
If OpenWindow(0, 0, 0, 322, 205, "StringGadget Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  PanelGadget (10, 0, 0, WindowWidth(0), WindowHeight(0))
  AddGadgetItem (10, -1, "Закладка 1")
  StringGadget(0, 8,  10, 306, 20, "")
  AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
  StringGadget(1, 8,  35, 306, 20, "")
  StringGadget(2, 8,  65, 306, 20, "")
  AddGadgetItem (10, -1, "Закладка 2")  
  StringGadget(3, 8,  10, 306, 20, "")  
  StringGadget(4, 8,  35, 306, 20, "")
  StringGadget(5, 8,  65, 306, 20, "")
  CloseGadgetList()
  
  Repeat
    Event = WaitWindowEvent()
    
    If Event = #PB_Event_Menu
      Select EventMenu()
        Case 0
          Gadget = GetActiveGadget()
          If Gadget<>-1
            SetFocus_(GetNextDlgTabItem_(GetParent_(GadgetID(Gadget)), GadgetID(Gadget), #False)) 
          EndIf
      EndSelect
    EndIf
  Until Event = #PB_Event_CloseWindow
  
EndIf
1
0 / 0 / 0
Регистрация: 29.09.2016
Сообщений: 38
20.06.2017, 14:27  [ТС]
Вот это очень интересно. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2017, 14:27
Помогаю со студенческими работами здесь

Работа с горячими клавишами
Добрый день. Есть такая проблема.я в приложении регистрирую горячие клавиши, по нажатию которых открываются окна/выполняются функции. ...

Работа с дополнительными клавишами клавиатуры...
Есть у меня ноутбук. У него есть клавиши включения\отключения Bluetooth, Wi-Fi, энергосбережение. Есть и клавиши управления проигрывателем,...

Работа с горячими клавишами через WinAPI
Привет, делаю программу для автоматизации некоторых сообщений в игре. Делаю хоткей глобальным Схема такая: Есть Edit-ы в которых...

Вирус на всех гаджетах
Здравствуйте ! Подскажите, пожалуйста, как это возможно и что делать... В один момент на двух телефонах, планшете и ноутбуке появились...

Пропадает wifi на ноуте и на гаджетах
Периодически (где-то через 30 минут) пропадает wi-fi, причем не только на ноутбуке (Dell), но и на всех гаджетах, помогает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru