А МОЖНО ФРАГМЕНТ КОДА ГДЕ НЕ КНОПКИ А КВАДРАТНЫЕ ОКОШКИ ЧТОБ ГАЛОЧКИ СТАВИТЬ
Код: Выделить всё
If OpenWindow(0, 200, 200, 200, 100,"CheckBoxGadget",#PB_Window_MinimizeGadget)
If CreateGadgetList(WindowID(0))
; Создаём гаджет
CheckBoxGadget(0, 10, 30, 250, 20, "Птички нет")
Repeat
Event=WaitWindowEvent()
Gadget=EventGadget()
; Обработка событий от гаджета с идентификатором 0
If Event=#PB_Event_Gadget And Gadget=0
; Проверяем есть ли птичка? Если 0 значит нет, если 1 птичка есть
Ptihka=GetGadgetState(0)
If Ptihka=0
; Этот код выполняем, если в переменной Ptihka число равное нулю
; Записываем в гаджет с идентификатором 0, текст
SetGadgetText(0,"Птички нет")
Else
; Этот код выполняем, если в переменной Ptihka число отличное от нуля
; Записываем в гаджет с идентификатором 0, текст
SetGadgetText(0,"Птичка есть")
EndIf
EndIf
Until Event=#PB_Event_CloseWindow
EndIf
EndIf
End
Программно птичка ставится с помощью кода
а сбрасывается с помощью
где Gadget - идентификатор, который присвоен окошку для галочки.
Например, в коде, выложеном выше, идентификатор равен нулю
Скачайте
этот учебникТам в папке
\Программы\Гаджет\Примеры есть примеры.
как можно сделать чтоб при выборе пункта меню открывалось воторое окно в котором будет находиться скажем куча кнопок ручного управления
Код: Выделить всё
If OpenWindow(0, 200, 200, 290, 130,"Меню",#PB_Window_MinimizeGadget)
If CreateGadgetList(WindowID(0))
; Создаём меню
If CreateMenu(0,WindowID(0))
; Создаём новый заголовок меню
MenuTitle("Файл")
; Создаём пункты меню
MenuItem(0,"Открыть")
MenuItem(1,"Сохранить")
; Разделитель между меню
MenuBar()
MenuItem(2,"Выход")
; Создаём новый заголовок меню
MenuTitle("Справка")
MenuItem(3,"О программе")
EndIf
Repeat
Event=WaitWindowEvent() ; Узнаём текущее событие в программе
Gadget=EventGadget() ; Идентификатор гаджета, в котором произошло событие
Menu=EventMenu() ; Получаем идентификатор активного пункта меню
Window=EventWindow() ; Мдентификатор активного окна
If Window=0 ; События главного окна
If Event=#PB_Event_Menu ; Условие будет выполнено, если произойдёт событие в меню
Select Menu ; Запоминаем идентификатор меню для последующего сравнения в операторах Case
Case 0 ; Произошло событие в пункте и идентификатором 0
MessageRequester("Меню","Пункт 'Открыть'")
Case 1 ; Произошло событие в пункте и идентификатором 1
MessageRequester("Меню","Пункт 'Сохранить'")
Case 2 ; Произошло событие в пункте и идентификатором 2
Break ; Это прервёт главный цикл и программа закроется
Case 3 ; Произошло событие в пункте и идентификатором 3
; Создаём окно "О программе"
If OpenWindow(1, 0, 0, 130, 50,"О програме",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(1))
ButtonGadget(1,30,10,80,30,"Закрыть")
EndIf
EndIf
EndSelect ; Этот оператор завершает операцию выбора, начатую оператором Select
EndIf
ElseIf Window=1 ; События дополнительного окна "О программе"
If Event=#PB_Event_CloseWindow ; Событие закрытия окна
CloseWindow(1) ; Закрываем окно с идентификатором 1
EndIf
If Event=#PB_Event_Gadget ; Событие в гаджете
If Gadget=1 ;Идентификатор заджета равен 1, т. е. это кнопка "Закрыть"
CloseWindow(1) ; Закрываем окно с идентификатором 1
EndIf
EndIf
EndIf
Until Event=#PB_Event_CloseWindow And Window=0 ; Цикл прервётся при закрытии главного окна
EndIf
EndIf
End
При щелчке по пункту меню "О программе", откроется окно с одной кнопкой.
Я так понимаю что это будет окно настроек.
Поэтому перед закрытием окна нужно будет прочитать состояния всех кнопок, окошек для галочек ну, и т. д. и сохранить в переменных.
В большенстве случаев для чтения используется функция
GetGadgetState(Gadget), но если нужно прочитать текст, следует использовать функцию
GetGadgetText(Gadget)