Доброго времени суток. Буквально пару дней назад перешел на пурик и сразу возникла множество вопросов. Так как раньше я писал на делфях, то перейти на другой язык оказалось не так легко, как я думал. Хоть Pure и простой мне нужна ОСНОВАТЕЛЬНАЯ ваша помощь. Ваш сайтик и форум из всех остальных я выбрал из -за его простоты и понятности. Поэтому не обессудьте. Учусь я быстро и хорошо.
Ну так ближе к делу. Как создается окно я примерно понял. Теперь надо разобраться с свойствами. Давайте начнем с простого примера. Как при нажатии кнопки в label поменять текст, например, на Привет мир!! Для вас конечно легко, но учиться всем надо...
Вопросы новичка
Сообщений 1 страница 30 из 1000
Поделиться130.01.2010 21:00:28
Поделиться230.01.2010 22:15:39
Вот пример
; Создаём окно. OpenWindow(1,150,200,200,100,"Заголовок окна",#PB_Window_MinimizeGadget) TextGadget(1, 50,20,100,16,"Это текст") ButtonGadget(2,50,50,80,25,"Кнопка") Repeat ; Начало главного цикла Repeat-Until. Event=WaitWindowEvent() ; Получаем идентификатор события. Gadget=EventGadget() ; Узнаём идентификатор гаджета в котором произошло событие. If Event=#PB_Event_Gadget ; Произошло событие в гаджете If Gadget=2 ; Условие будет выполнено при щелчке по кнопке (у неё идентификатор 2). SetGadgetText(1,"Привет мир!") ; Изменяет тест в гаджете с идентификаторм 1 (у нас это TextGadget) EndIf EndIf Until Event = #PB_Event_CloseWindow ; Прерываем цикл если в переменной "Event" будет число равное числу в константе.
Поделиться330.01.2010 22:25:41
Спасибо. Все понял. А вообще, если изменять любые свойства, например, надписи, то для каждого свойства свое название есть? Вот например для того что бы ввести текст - это SetGadgetText. А если мне надо допустим изменить поменять шрифт, разиер, цвет и тп, то свойства другие будут?
Поделиться430.01.2010 22:34:14
И еще вопрос. Можно ли програмно создать туже надпись в случайном положении на форме при нажатии на кнопке. И что бы создавать можно было любое колличество этих label -ов
Поделиться530.01.2010 22:35:01
если мне надо допустим изменить поменять шрифт, разиер, цвет и тп, то свойства другие будут?
Для этот существуют другие функции.
Например, для изменения шрифта используется функция SetGadgetFont
SetGadgetFont(#Gadget, LoadFont(#PB_Any, "Arial", 24))
Эта строка установит текушим шриф Arial с размером 24 в гаджете с идентификаторм #Gadget
Чтобы узанть доступные свойства (функции) для того или иного гаджета, нужно просто установить текстовый курсор в редакторе кода на интерисующую функцию, например, на ButtonGadget и нажать на клавиатуре, кнопку F1
Поделиться630.01.2010 22:40:23
Можно ли програмно создать туже надпись в случайном положении на форме при нажатии на кнопке. И что бы создавать можно было любое колличество этих label -ов
Примерно так можно сделать
; Создаём окно. OpenWindow(1,150,200,400,400,"Заголовок окна",#PB_Window_MinimizeGadget) ButtonGadget(2,20,20,80,25,"Кнопка") Count=0 Repeat ; Начало главного цикла Repeat-Until. Event=WaitWindowEvent() ; Получаем идентификатор события. Gadget=EventGadget() ; Узнаём идентификатор гаджета в котором произошло событие. If Event=#PB_Event_Gadget ; Произошло событие в гаджете If Gadget=2 ; Условие будет выполнено при щелчке по кнопке (у неё идентификатор 2) Count+1 TextGadget(#PB_Any,Random(300), Random(400), 100,16, "Это надпись №"+Str(Count)) EndIf EndIf Until Event = #PB_Event_CloseWindow ; Прерываем цикл если в переменной "Event" будет число равное числу в константе.
Поделиться730.01.2010 22:41:10
Со свойствами понятно.
Поделиться830.01.2010 22:48:34
Примерно так можно сделать
хм.. а как собственно тут происходит создание новой надписи??
Поделиться930.01.2010 22:50:46
Её создаёт функция TextGadget, которая выполняется при каждом клике по кнопке.
Поделиться1030.01.2010 23:41:39
ясно, спасибо. Пока буду разбираться со всем вышеописанным
Поделиться1130.01.2010 23:50:29
Count=0
вот это сможешь прокомментировать? Я так понял это типа памяти , который прибавляет по 1 каждый раз
Поделиться1231.01.2010 09:23:33
вот это сможешь прокомментировать? Я так понял это типа памяти , который прибавляет по 1 каждый раз
Привет daiomik!
Это типа счетчика для присвоения твоим кнопкам разные имена
Можно и не писать эту строку, переменным по умолчанию присваивается 0.
Петр, я думаю, написал ее только для большего понимания.
Отредактировано haav (31.01.2010 09:29:35)
Поделиться1331.01.2010 11:19:55
Это типа счетчика
ясно. А где в этом коде место, отвечающее за случайное распределение label-ов?
Поделиться1431.01.2010 11:43:22
daiomik написал(а):ясно. А где в этом коде место, отвечающее за случайное распределение label-ов?
Вот это место:
TextGadget(#PB_Any,Random(300), Random(400), 100,16, "Это надпись №"+Str(Count))
Функция Random(300) к примеру генерит числа от 1 до 300
Поделиться1531.01.2010 12:15:44
Функция Random(300) к примеру генерит числа от 1 до 300
таак. С этим разобрался. Спасибо )
Поделиться1631.01.2010 12:50:32
Еще вопрос. Создал я с помощью визуального редактора две некие формы и перекинул их в пурик. Получился вот такой код:
; PureBasic Visual Designer v3.95 build 1485 (PB4Code) ;- Window Constants ; Enumeration #Window_0 #Window_1 EndEnumeration ;- Gadget Constants ; Enumeration #Button_0 EndEnumeration Procedure Open_Window_0() If OpenWindow(#Window_0, 379, 244, 115, 155, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_0)) ButtonGadget(#Button_0, 10, 10, 95, 25, "О программе") EndIf EndIf EndProcedure Procedure Open_Window_1() If OpenWindow(#Window_1, 458, 261, 251, 60, "О программе", #PB_Window_SystemMenu | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_1)) EndIf EndIf EndProcedure
возникает вопрос: во - первых странный у них вид кода, не такой как например в предыдущем примере, во-вторых наличие процедур (непонятно зачем) и в - третьих отсутствие цикла Repeat-Until. Как этот код переделать, что бы все работало и как при запуски проги сделать так, что бы окно "О ппрограмме" не было видно. Оно должно появиться при нажатии кнопки
Отредактировано daiomik (31.01.2010 12:52:35)
Поделиться1731.01.2010 13:06:27
отсутствие цикла Repeat-Until
Его нужно самому добавить.
Визуальный редактор создаёт колько код окон.
;- Window Constants ; Enumeration #Window_0 #Window_1 EndEnumeration ;- Gadget Constants ; Enumeration #Button_0 EndEnumeration Procedure Open_Window_0() If OpenWindow(#Window_0, 379, 244, 115, 155, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_0)) ButtonGadget(#Button_0, 10, 10, 95, 25, "О программе") EndIf EndIf EndProcedure Procedure Open_Window_1() If OpenWindow(#Window_1, 458, 261, 251, 60, "О программе", #PB_Window_SystemMenu | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_1)) EndIf EndIf EndProcedure Open_Window_0() Repeat ; Начало главного цикла Repeat-Until. Event=WaitWindowEvent() ; Получаем идентификатор события. Gadget=EventGadget() ; Узнаём идентификатор гаджета в котором произошло событие. Window=EventWindow() ; Получаем идентификатор окна, в котором произошло событие If Window=#Window_0 ; Обработчик событий для окна "MainForm" If Event=#PB_Event_Gadget ; Произошло событие в гаджете If Gadget=#Button_0 ; Условие будет выполнено при щелчке по кнопке Open_Window_1() EndIf EndIf ElseIf Window=#Window_1 ; Обработчик событий для окна "О программе" If Event = #PB_Event_CloseWindow CloseWindow(#Window_1) EndIf EndIf Until Event = #PB_Event_CloseWindow And Window=#Window_0 ; Прерываем цикл если в переменной "Event" будет число равное числу в константе.
Поделиться1831.01.2010 13:10:04
Примерно вот так:
; PureBasic Visual Designer v3.95 build 1485 (PB4Code) ;- Window Constants ; Enumeration #Window_0 #Window_1 EndEnumeration ;- Gadget Constants ; Enumeration #Button_0 EndEnumeration Procedure Open_Window_0() If OpenWindow(#Window_0, 379, 244, 115, 155, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) ButtonGadget(#Button_0, 10, 10, 95, 25, "О программе") EndIf EndProcedure Procedure Open_Window_1() If OpenWindow(#Window_1, 458, 261, 251, 60, "О программе", #PB_Window_SystemMenu | #PB_Window_TitleBar ) EndIf EndProcedure Open_Window_0() ; запускаем первое окно Repeat event=WaitWindowEvent() ; команда ожидания события If event = #PB_Event_Gadget ;Условие срабатывания кнопки If EventGadget() = #Button_0 Open_Window_1() EndIf EndIf Until event=#PB_Event_CloseWindow ;Условие выхода из цикла
во-вторых наличие процедур (непонятно зачем)
Пурик процедурный язык, поэтому наличие процедур в нем отражает его качества. Далее код
If CreateGadgetList(WindowID(#Window_1))
EndIf
не нужен, это для старых версий компилятора.
P.s Я так и знал что опоздаю
Отредактировано haav (31.01.2010 13:12:03)
Поделиться1931.01.2010 13:13:00
спасибо, оперативно
Поделиться2031.01.2010 14:14:05
Вот начал писать простейшее оконное приложение. Сразу ошибка, разберитесь пожалуйста:
; PureBasic Visual Designer v3.95 build 1485 (PB4Code) ;- Window Constants ; Enumeration #Window_0 #Window_1 EndEnumeration ;- MenuBar Constants ; Enumeration #MenuBar_0 EndEnumeration Enumeration #MENU_1 #MENU_2 #MENU_4 #MENU_6 #MENU_3 #MENU_8 #MENU_9 EndEnumeration Procedure Open_Window_0() If OpenWindow(#Window_0, 211, 146, 600, 300, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateMenu(#MenuBar_0, WindowID(#Window_0)) MenuTitle("Файл") MenuItem(#MENU_1, "Открыть") MenuItem(#MENU_2, "Сохранить") MenuBar() MenuItem(#MENU_4, "Выход") MenuTitle("Помощь") MenuItem(#MENU_8, "О программе") EndIf If CreateGadgetList(WindowID(#Window_0)) EndIf EndIf EndProcedure Procedure Open_Window_1() If OpenWindow(#Window_1, 370, 270, 240, 86, "О программе", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_1)) EndIf EndIf EndProcedure Repeat ; Начало главного цикла Repeat-Until. Event=WaitWindowEvent() ; Получаем идентификатор события. Gadget=EventGadget() ; Узнаём идентификатор гаджета в котором произошло событие. Window=EventWindow() ; Получаем идентификатор окна, в котором произошло событие If Window=#Window_0 ; Обработчик событий для окна "MainForm" If Event=#PB_Event_Gadget ; Произошло событие в гаджете If Gadget=#MENU_9 ; Условие будет выполнено при щелчке по кнопке Open_Window_1() EndIf EndIf ElseIf Window=#Window_1 ; Обработчик событий для окна "О программе" If Event = #PB_Event_CloseWindow CloseWindow(#Window_1) EndIf EndIf Until Event = #PB_Event_CloseWindow And Window=#Window_0 ; Прерываем цикл если в переменной "Event" будет число равное числу в константе.
Поделиться2131.01.2010 14:21:13
После объявления процедур, ты забыл ее запустить. Перед строкой Repeat ; Начало главного цикла Repeat-Until.
Надо Open_Window_0()
Поделиться2231.01.2010 14:25:04
Запустилось без ошибок, только теперь при нажатии пункта меню почему то не запускается окно
If Event=#PB_Event_Gadget ; Произошло событие в гаджете
If Gadget=#MENU_9 ; Условие будет выполнено при щелчке по кнопке
Open_Window_1()
EndIf
Поделиться2331.01.2010 14:28:19
Чтобы обрабатывать события меню, нужно отслежимать событие #PB_Event_Menu.
Номер пункта меню получаем с помощью функции EventMenu()
; PureBasic Visual Designer v3.95 build 1485 (PB4Code) ;- Window Constants ; Enumeration #Window_0 #Window_1 EndEnumeration ;- MenuBar Constants ; Enumeration #MenuBar_0 EndEnumeration Enumeration #MENU_1 #MENU_2 #MENU_4 #MENU_6 #MENU_3 #MENU_8 #MENU_9 EndEnumeration Procedure Open_Window_0() If OpenWindow(#Window_0, 211, 146, 600, 300, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateMenu(#MenuBar_0, WindowID(#Window_0)) MenuTitle("Файл") MenuItem(#MENU_1, "Открыть") MenuItem(#MENU_2, "Сохранить") MenuBar() MenuItem(#MENU_4, "Выход") MenuTitle("Помощь") MenuItem(#MENU_8, "О программе") EndIf If CreateGadgetList(WindowID(#Window_0)) EndIf EndIf EndProcedure Procedure Open_Window_1() If OpenWindow(#Window_1, 370, 270, 240, 86, "О программе", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_1)) EndIf EndIf EndProcedure Open_Window_0() Repeat ; Начало главного цикла Repeat-Until. Event=WaitWindowEvent() ; Получаем идентификатор события. Gadget=EventGadget() ; Узнаём идентификатор гаджета в котором произошло событие. Window=EventWindow() ; Получаем идентификатор окна, в котором произошло событие Menu=EventMenu() If Window=#Window_0 ; Обработчик событий для окна "MainForm" If Event=#PB_Event_Menu ; Произошло событие в меню If Menu=#MENU_8 ; Пункт меню "О программе". Open_Window_1() EndIf EndIf ElseIf Window=#Window_1 ; Обработчик событий для окна "О программе" If Event = #PB_Event_CloseWindow CloseWindow(#Window_1) EndIf EndIf Until Event = #PB_Event_CloseWindow And Window=#Window_0 ; Прерываем
Поделиться2431.01.2010 14:33:20
Спасибо, все работает
Поделиться2531.01.2010 15:01:27
теперь такой вопрос. Как выйти их программы по нажатию Выход. Опять ошибка
; PureBasic Visual Designer v3.95 build 1485 (PB4Code) ;- Window Constants ; Enumeration #Window_0 #Window_1 EndEnumeration ;- MenuBar Constants ; Enumeration #MenuBar_0 EndEnumeration Enumeration #MENU_1 #MENU_2 #MENU_4 #MENU_6 #MENU_3 #MENU_8 #MENU_9 EndEnumeration Procedure Open_Window_0() If OpenWindow(#Window_0, 211, 146, 600, 300, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateMenu(#MenuBar_0, WindowID(#Window_0)) MenuTitle("Файл") MenuItem(#MENU_1, "Открыть") MenuItem(#MENU_2, "Сохранить") MenuBar() MenuItem(#MENU_4, "Выход") MenuTitle("Помощь") MenuItem(#MENU_8, "О программе") EndIf If CreateGadgetList(WindowID(#Window_0)) EndIf EndIf EndProcedure Procedure Open_Window_1() If OpenWindow(#Window_1, 370, 270, 240, 86, "О программе", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_1)) EndIf EndIf EndProcedure Open_Window_0() Repeat ; Начало главного цикла Repeat-Until. Event=WaitWindowEvent() ; Получаем идентификатор события. Gadget=EventGadget() ; Узнаём идентификатор гаджета в котором произошло событие. Window=EventWindow() ; Получаем идентификатор окна, в котором произошло событие Menu=EventMenu() If Window=#Window_0 ; Обработчик событий для окна "MainForm" If Event=#PB_Event_Menu ; Произошло событие в меню If Menu=#MENU_8 ; Пункт меню "О программе". Open_Window_1() EndIf If Even=#PB_Event_Menu If Menu=MENU_4 End EndIf EndIf ElseIf Window=#Window_1 ; Обработчик событий для окна "О программе" If Event = #PB_Event_CloseWindow CloseWindow(#Window_1) EndIf EndIf Until Event = #PB_Event_CloseWindow And Window=#Window_0 ; Прерываем цикл если в переменной "Event" будет число равное числу в константе.
Поделиться2631.01.2010 15:07:34
Опять ошибка
Просто не хватало завершающего оператора EndIf
; PureBasic Visual Designer v3.95 build 1485 (PB4Code) ;- Window Constants ; Enumeration #Window_0 #Window_1 EndEnumeration ;- MenuBar Constants ; Enumeration #MenuBar_0 EndEnumeration Enumeration #MENU_1 #MENU_2 #MENU_4 #MENU_6 #MENU_3 #MENU_8 #MENU_9 EndEnumeration Procedure Open_Window_0() If OpenWindow(#Window_0, 211, 146, 600, 300, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateMenu(#MenuBar_0, WindowID(#Window_0)) MenuTitle("Файл") MenuItem(#MENU_1, "Открыть") MenuItem(#MENU_2, "Сохранить") MenuBar() MenuItem(#MENU_4, "Выход") MenuTitle("Помощь") MenuItem(#MENU_8, "О программе") EndIf If CreateGadgetList(WindowID(#Window_0)) EndIf EndIf EndProcedure Procedure Open_Window_1() If OpenWindow(#Window_1, 370, 270, 240, 86, "О программе", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_1)) EndIf EndIf EndProcedure Open_Window_0() Repeat ; Начало главного цикла Repeat-Until. Event=WaitWindowEvent() ; Получаем идентификатор события. Gadget=EventGadget() ; Узнаём идентификатор гаджета в котором произошло событие. Window=EventWindow() ; Получаем идентификатор окна, в котором произошло событие Menu=EventMenu() If Window=#Window_0 ; Обработчик событий для окна "MainForm" If Event=#PB_Event_Menu ; Произошло событие в меню If Menu=#MENU_8 ; Пункт меню "О программе". Open_Window_1() ElseIf Menu=#MENU_4 End EndIf EndIf ElseIf Window=#Window_1 ; Обработчик событий для окна "О программе" If Event = #PB_Event_CloseWindow CloseWindow(#Window_1) EndIf EndIf Until Event = #PB_Event_CloseWindow And Window=#Window_0 ; Прерываем цикл если в переменной "Event" будет число равное числу в константе.
Поделиться2731.01.2010 16:05:32
Добавил текстовое поле, но не знаю как его растянуть на всю область, не подскажете?
; PureBasic Visual Designer v3.95 build 1485 (PB4Code) ;- Window Constants ; Enumeration #Window_0 #Window_1 EndEnumeration ;- MenuBar Constants ; Enumeration #MenuBar_0 EndEnumeration Enumeration #MENU_1 #MENU_2 #MENU_4 #MENU_6 #MENU_3 #MENU_8 #MENU_9 EndEnumeration Procedure Open_Window_0() If OpenWindow(#Window_0, 211, 146, 600, 300, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateMenu(#MenuBar_0, WindowID(#Window_0)) MenuTitle("Файл") MenuItem(#MENU_1, "Открыть") MenuItem(#MENU_2, "Сохранить") MenuBar() MenuItem(#MENU_4, "Выход") MenuTitle("Помощь") MenuItem(#MENU_8, "О программе") EndIf If CreateGadgetList(WindowID(#Window_0)) EndIf EndIf EndProcedure Procedure Open_Window_1() If OpenWindow(#Window_1, 370, 270, 240, 86, "О программе", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_1)) EndIf EndIf EndProcedure Open_Window_0() EditorGadget(1,2,30,548,360) Repeat ; Начало главного цикла Repeat-Until. Event=WaitWindowEvent() ; Получаем идентификатор события. Gadget=EventGadget() ; Узнаём идентификатор гаджета в котором произошло событие. Window=EventWindow() ; Получаем идентификатор окна, в котором произошло событие Menu=EventMenu() If Window=#Window_0 ; Обработчик событий для окна "MainForm" If Event=#PB_Event_Menu ; Произошло событие в меню If Menu=#MENU_8 ; Пункт меню "О программе". Open_Window_1() ElseIf Menu=#MENU_4 End EndIf EndIf ElseIf Window=#Window_1 ; Обработчик событий для окна "О программе" If Event = #PB_Event_CloseWindow CloseWindow(#Window_1) EndIf EndIf Until Event = #PB_Event_CloseWindow And Window=#Window_0 ; Прерываем цикл если в переменной "Event" будет число равное числу в константе.
Поделиться2831.01.2010 16:16:49
Добавил текстовое поле, но не знаю как его растянуть на всю область, не подскажете?
Соотноси размеры с окном
If OpenWindow(#Window_0, 211, 146, 600, 300, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
EditorGadget(1,2,30,548,360)
Поделиться2931.01.2010 16:26:34
не выходит. Всеравно текстовое поле криво на форме располагается
Поделиться3031.01.2010 16:28:02
Если имеется в виду изменение размеров этого поля при изменении размеров окна, то для этого нужно отслеживать событие PB_Event_SizeWindow и изменять размер с помощью функции ResizeGadget
; PureBasic Visual Designer v3.95 build 1485 (PB4Code) ;- Window Constants ; Enumeration #Window_0 #Window_1 EndEnumeration ;- MenuBar Constants ; Enumeration #MenuBar_0 EndEnumeration Enumeration #MENU_1 #MENU_2 #MENU_4 #MENU_6 #MENU_3 #MENU_8 #MENU_9 EndEnumeration Procedure Open_Window_0() If OpenWindow(#Window_0, 211, 146, 600, 300, "MainForm", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateMenu(#MenuBar_0, WindowID(#Window_0)) MenuTitle("Файл") MenuItem(#MENU_1, "Открыть") MenuItem(#MENU_2, "Сохранить") MenuBar() MenuItem(#MENU_4, "Выход") MenuTitle("Помощь") MenuItem(#MENU_8, "О программе") EndIf If CreateGadgetList(WindowID(#Window_0)) EndIf EndIf EndProcedure Procedure Open_Window_1() If OpenWindow(#Window_1, 370, 270, 240, 86, "О программе", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) If CreateGadgetList(WindowID(#Window_1)) EndIf EndIf EndProcedure Open_Window_0() EditorGadget(1,2,30,548,360) SmartWindowRefresh(#Window_0, 1) ; Это для уменьшения мерцания окна при изменении его размеров Repeat ; Начало главного цикла Repeat-Until. Event=WaitWindowEvent() ; Получаем идентификатор события. Gadget=EventGadget() ; Узнаём идентификатор гаджета в котором произошло событие. Window=EventWindow() ; Получаем идентификатор окна, в котором произошло событие Menu=EventMenu() If Window=#Window_0 ; Обработчик событий для окна "MainForm" If Event=#PB_Event_Menu ; Произошло событие в меню If Menu=#MENU_8 ; Пункт меню "О программе". Open_Window_1() ElseIf Menu=#MENU_4 End EndIf EndIf If Event=#PB_Event_SizeWindow ResizeGadget(1, #PB_Ignore, #PB_Ignore, WindowWidth(#Window_0)-4, WindowHeight(#Window_0)-54 ) EndIf ElseIf Window=#Window_1 ; Обработчик событий для окна "О программе" If Event = #PB_Event_CloseWindow CloseWindow(#Window_1) EndIf EndIf Until Event = #PB_Event_CloseWindow And Window=#Window_0 ; Прерываем цикл если в переменной "Event" будет число равное числу в константе.
Похожие темы
Вопросы новичка (продолжение…) | Вопросы по PureBasic | 29.06.2024 |
Скорее, это теоретический вопрос о правах в директории. | OffTop | 16.09.2022 |
Вопрос по отладке | Вопросы по PureBasic | 26.01.2017 |
Три вопроса по созданию браузера. | Вопросы по PureBasic | 01.11.2010 |
вопрос о точности типов данных | Вопросы по PureBasic | 20.05.2021 |