Уроки PureBasic

Categories

Other Sites

Other Sites



             Поиск по сайту

     

                


    Оставить мне сообщение:



Пример графического меню

Создадим на примере графическое меню :

В качестве кнопок используем изображения.
Фон окна - изображение.
Озвучивание кнопок при наведении курсора мыши.
Изменение формы курсора при наведении.
Заставка перед главным окном.

Для версии PureBasic 4.30
Библиотеки :
Droopy_Library_4.30
PBOSL_4.30
PureCOLOR_430


Уроки PureBasic

Уроки PureBasic

1. Создадим в программе Adobe Photoshop фон нашего окна.
Первый пиксель изображения белый (FFFFFF), в дальнейшем - все белое (FFFFFF) на нашем окне не будет видно.

Как нарисовать я описывать не стану.
В интернете огромное число уроков по работе в этой программы.
Вот некоторые ссылки сайтов :

http://photoshop.demiart.ru/

http://www.photoshop-master.ru/

http://tutorials.psdschool.ru/sitemap

Уроки PureBasic

2. При сохранении файла изображения выбираем формат :

bmp , jpg или png

Есть некоторые особенности :

Программа PureBasiс хорошо работает с форматом bmp, но сохраненный файл нашего изображения в этом формате имеет большой размер.

bmp - 861КБ

jpg - 52,КБ

png - 4,64КБ

Для файлов jpg и png придется применить

UsePNGImageDecoder() и UseJPGImageDecoder() декодер.

Если создавать нестандартную форму окна, то формат jpg оставляет рваный край. Убрать его я не смог.

Уроки PureBasic

С bmp и png проще, поработав в фотошопе попиксельно это можно легко убрать.

Уроки PureBasic

Звук при наведении на кнопки, происходит при наличии соответствующих кодеков в системе.
При компиляции, звуковые файлы останутся во внешней папке, а не в EXE.

Скачать исходник 67,3КБ

Код программы :

InitMovie() ; Инициализация в библиотеки

LoadMovie(1, "saund/logon.CaPa.ru.OGG")
LoadMovie(2, "saund/444.OGG") ; нажата. - озвучивание кнопки
LoadMovie(3, "saund/111.OGG") ; вход - выход. озвучивание кнопки
UsePNGImageDecoder()

Enumeration

#BackgroundImage_Window_0
EndEnumeration

Global BackgroundImage_Window_0_Brush

DataSection
BackgroundImage_Window_0:
IncludeBinary "заставка.png"
EndDataSection

; Заставка
OpenWindow(a,100,100,400,100,"Stiv ",#PB_Window_ScreenCentered|#PB_Window_BorderLess )
BackgroundImage_Window_0_Brush = CreatePatternBrush_(CatchImage(#BackgroundImage_Window_0, ?BackgroundImage_Window_0))
If BackgroundImage_Window_0_Brush
SetClassLong_(WindowID(a), #GCL_HBRBACKGROUND, BackgroundImage_Window_0_Brush)
RedrawWindow_(WindowID(a), 0, 0, #RDW_ERASE | #RDW_FRAME | #RDW_INVALIDATE | #RDW_ALLCHILDREN)
FreeImage(#BackgroundImage_Window_0)
PlayMovie(1, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
EndIf
TextGadget(0, 0, 0, 0, 0, "строка текста")
Delay(3000); время работы заставки

Procedure IsMouseOver(wnd) ; Эта процедура определяет находится ли курсор мышки над заданным окном или гаджетом
GetWindowRect_(wnd,re.RECT)
GetCursorPos_(pt.POINT)
Result.l = PtInRect_(@re, pt\x | (pt\y<<32) )
ProcedureReturn Result
EndProcedure

Enumeration
#Window_0
EndEnumeration

Procedure EventButton1(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки Выход
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(1))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(1,ImageID(1)) ; изображение при наведении курсора
PlayMovie(3, WindowID(0))
EndIf
Else
If
Button=1
Button=0
SetGadgetState(1,ImageID(2)) ; изображение при убратии курсора
PlayMovie(3, WindowID(0))
EndIf
EndIf
EndIf
EndProcedure


Procedure EventButton2(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки 1
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(2))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(2,ImageID(4)) ;изображение при наведении курсора
SetGadgetState(3,ImageID(3))
SetGadgetState(4,ImageID(3))
SetGadgetState(5,ImageID(3))
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
SetGadgetText(7,"Открыть файлы")
EndIf
Else
If
Button=1
Button=0
SetGadgetState(2,ImageID(4)) ;изображение при убратии курсора
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
EndIf
EndIf
EndIf
EndProcedure


Procedure EventButton3(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки 2
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(3))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(3,ImageID(5)) ;изображение при наведении курсора
SetGadgetState(2,ImageID(3))
SetGadgetState(4,ImageID(3))
SetGadgetState(5,ImageID(3))
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
SetGadgetText(7,"Просмотор Фото")
EndIf
Else
If
Button=1
Button=0
SetGadgetState(3,ImageID(5)) ;изображение при убратии курсора
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
EndIf
EndIf
EndIf
EndProcedure


Procedure EventButton4(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки 3
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(4))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(4,ImageID(6)) ;изображение при наведении курсора
SetGadgetState(2,ImageID(3))
SetGadgetState(3,ImageID(3))
SetGadgetState(5,ImageID(3))
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
SetGadgetText(7,"Проигрывание MP3")
EndIf
Else

If Button=1
Button=0
SetGadgetState(4,ImageID(6)) ;изображение при убратии курсора
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
EndIf
EndIf
EndIf
EndProcedure


Procedure EventButton5(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки 4
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(5))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(5,ImageID(7)) ;изображение при наведении курсора
SetGadgetState(2,ImageID(3))
SetGadgetState(3,ImageID(3))
SetGadgetState(4,ImageID(3))
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
SetGadgetText(7,"Проигрывание Видео")
EndIf
Else
If
Button=1
Button=0
SetGadgetState(5,ImageID(7)) ;изображение при убратии курсора
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
EndIf
EndIf
EndIf
EndProcedure


Procedure EventButton6(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки о программе
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(6))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(6,ImageID(9)) ;изображение при наведении курсора
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
EndIf
Else
If
Button=1
Button=0
SetGadgetState(6,ImageID(8)) ;изображение при убратии курсора
PlayMovie(3, WindowID(0)) ; Включаем озвучивание кнопки при наведении курсора
EndIf
EndIf
EndIf
EndProcedure



DataSection ; Сохранение рисунка в исполняемом файле на этапе компиляции
Im:
IncludeBinary "PB_Skin5.png" ; фон окна
ImEnd:
Im1:
IncludeBinary "1_3.bmp" ; изображение кнопки выход
Im1End:
Im2:
IncludeBinary "1_1.bmp" ; изображение кнопки выход
Im2End:
Im3:
IncludeBinary "Alloy_1.png" ; изображение : кнопка не нажата
Im3End:
Im4:
IncludeBinary "Alloy_2.png" ; изображение 1-й кнопки
Im4End:
Im5:
IncludeBinary "Alloy_3.png" ; изображение 2-й кнопки
Im5End:
Im6:
IncludeBinary "Alloy_4.png" ; изображение 3-й кнопки
Im6End:
Im7:
IncludeBinary "Alloy_5.png" ; изображение 4-й кнопки
Im7End:
Im8:
IncludeBinary "2_3.bmp" ; изображение о программе 1
Im8End:
Im9:
IncludeBinary "2_1.bmp" ; изображение о программе 2
Im9End:
Im10:
IncludeBinary "o_pragrame.png" ; изображение о программе 3
Im10End:
EndDataSection

; Загрузка рисунков из памяти
CatchImage(0, ?Im, ?ImEnd-?Im)
CatchImage(1, ?Im1, ?Im1End-?Im1)
CatchImage(2, ?Im2, ?Im2End-?Im2)
CatchImage(3, ?Im3, ?Im3End-?Im3)
CatchImage(4, ?Im4, ?Im4End-?Im4)
CatchImage(5, ?Im5, ?Im5End-?Im5)
CatchImage(6, ?Im6, ?Im6End-?Im6)
CatchImage(7, ?Im7, ?Im7End-?Im7)
CatchImage(8, ?Im8, ?Im8End-?Im8)
CatchImage(9, ?Im9, ?Im9End-?Im9)
CatchImage(10, ?Im10, ?Im10End-?Im10)

hWnd = OpenWindow(#Window_0, (GetSystemMetrics_(#SM_CXSCREEN)),(GetSystemMetrics_(#SM_CYSCREEN)), 700, 420, "PB - WinSkin Example", #WS_POPUP|#PB_Window_Invisible)
If hWnd
; Надевание скина на окно
SetWinBackgroundColor(hWnd, GetSysColor_(#COLOR_BTNFACE))
SkinWin(hWnd, ImageID(id))
ResizeWindow(#Window_0,(GetSystemMetrics_(#SM_CXSCREEN)-700)/2,(GetSystemMetrics_(#SM_CYSCREEN)-420)/2, #PB_Ignore,#PB_Ignore)
SetForegroundWindow_(hWnd)

ButtonID=ImageGadget(1, 634, 18, 23, 23, ImageID(2)) ; отображение кнопка выход
ButtonID=ImageGadget(2, 50, 60, 64, 64, ImageID(3))
ButtonID=ImageGadget(3, 50, 123,64, 64, ImageID(3))
ButtonID=ImageGadget(4, 50, 183,64, 64, ImageID(3))
ButtonID=ImageGadget(5, 50, 241,64, 64, ImageID(3))
ButtonID=ImageGadget(6, 600, 18, 26, 26, ImageID(8))

TextGadget(7, 270, 90, 200, 15, "Выбери категорию") ; текст по умолчанию
PureCOLOR_SetGadgetColor(7, $FFFEFF, $2e2e2e) ; цвет текста, цвет фона

HyperLinkGadget(rr, 459, 347, 200, 15, "http://www.mirashic.narod.ru/PB_lessons/index.htm", RGB(254, 180, 114) )
SetGadgetColor(rr, #PB_Gadget_FrontColor, RGB(243, 116, 2)) ; цвет ссылки
PureCOLOR_SetGadgetColor(rr, #PureCOLOR_SystemColor, $2e2e2e) ; цвет фона ссылки

EndIf

;SetWindowsTransparency(hWnd, 180) ; Прозрачность окна

HideWindow(id,0)

Repeat
Event=WaitWindowEvent()
Gadget=EventGadget()
If Window=#Window_0
;/////////////// ; Это для того, чтобы можно было тащить окно за любую его часть
If Event = #WM_LBUTTONDOWN ; Левая кнопка мышки нажата
SendMessage_(hWnd,#WM_NCLBUTTONDOWN, #HTCAPTION,0)
EndIf
;///////////////
If Event=#PB_Event_Gadget And Gadget=1
Break ; Прерываем главный цикл
EndIf
;///////////////
If Event=#PB_Event_Gadget And Gadget=6
OpenWindow(2, 0, 0, 200, 200, "О программе", #PB_Window_ScreenCentered|#PB_Window_SystemMenu )
ImageGadget(8, 0, 0, 200, 200, ImageID(10))
EndIf
If Event=#PB_Event_CloseWindow
CloseWindow(2) ; закрыты о программе
EndIf
;///////////////
If Event=#PB_Event_Gadget And Gadget=rr
Silka.s=GetGadgetText(rr) ; Считываем текст ссылки
RunProgram(Silka) ; Передаём адрес ссылки системе
EndIf
;///////////////
If Event=#PB_Event_Gadget
PlayMovie(2, WindowID(0)) ; Озвучивание - любая кнопка нажата
EndIf
;///////////////
EventButton1(Event, Gadget, Type, 1)
EventButton2(Event, Gadget, Type, 1)
EventButton3(Event, Gadget, Type, 1)
EventButton4(Event, Gadget, Type, 1)
EventButton5(Event, Gadget, Type, 1)
EventButton6(Event, Gadget, Type, 1)
EndIf
ForEver



Уроки PureBasic

Другой вариант подключение sound.
Не требует наличия специальных кодеков в системе.
При компиляции звуки запишутся в EXE файл.

; заставка перед главным окном
InitSound() ; Инициализация музыкальной библиотеки
UseOGGSoundDecoder() ; Подключение плагина для чтения OGG файлов с музыкой
UsePNGImageDecoder()

CatchSound(0,?IB1,?IB2-?IB1) ; Загрузка музыки из исполняемого файла
CatchSound(1,?IB3,?IB4-?IB3) ; Загрузка музыки из исполняемого файла
CatchSound(2,?IB5,?IB6-?IB5) ; Загрузка музыки из исполняемого файла

Enumeration
#BackgroundImage_Window_0
EndEnumeration
Global BackgroundImage_Window_0_Brush
UseJPEGImageDecoder()
DataSection
BackgroundImage_Window_0:
IncludeBinary "заставка.png"
EndDataSection
OpenWindow(a,100,100,400,100,"Stiv ",#PB_Window_ScreenCentered|#PB_Window_BorderLess )
BackgroundImage_Window_0_Brush = CreatePatternBrush_(CatchImage(#BackgroundImage_Window_0, ?BackgroundImage_Window_0))
If BackgroundImage_Window_0_Brush
SetClassLong_(WindowID(a), #GCL_HBRBACKGROUND, BackgroundImage_Window_0_Brush)
RedrawWindow_(WindowID(a), 0, 0, #RDW_ERASE | #RDW_FRAME | #RDW_INVALIDATE | #RDW_ALLCHILDREN)
FreeImage(#BackgroundImage_Window_0)
PlaySound(2,0)
EndIf
TextGadget(0, 0, 0, 0, 0, "строка текста")
Delay(3000)


Procedure IsMouseOver(wnd) ; Эта процедура определяет находится ли курсор мышки над заданым окном или гаджетом
GetWindowRect_(wnd,re.RECT)
GetCursorPos_(pt.POINT)
Result.l = PtInRect_(@re, pt\x | (pt\y<<32) )
ProcedureReturn Result
EndProcedure
Enumeration
#Window_0
EndEnumeration


Procedure EventButton1(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки Выход
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(1))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(1,ImageID(1)) ;изображение при наведении курсора
PlaySound(0,0)
EndIf
Else
If Button=1
Button=0
SetGadgetState(1,ImageID(2)) ;изображение при убратии курсора
PlaySound(0,0)
EndIf
EndIf
EndIf
EndProcedure

Procedure EventButton2(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки 1
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(2))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(2,ImageID(4)) ;изображение при наведении курсора
SetGadgetState(3,ImageID(3))
SetGadgetState(4,ImageID(3))
SetGadgetState(5,ImageID(3))
SetGadgetText(7,"Открыть файлы")
PlaySound(0,0) ; Включаем озвучивание кнопки при наведении курсора
EndIf
Else
If Button=1
Button=0
SetGadgetState(2,ImageID(4)) ;изображение при убратии курсора
EndIf
EndIf
EndIf
EndProcedure

Procedure EventButton3(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки 2
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(3))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(3,ImageID(5)) ;изображение при наведении курсора
SetGadgetState(2,ImageID(3))
SetGadgetState(4,ImageID(3))
SetGadgetState(5,ImageID(3))
SetGadgetText(7,"Просмотор Фото")
PlaySound(0,0) ; Включаем озвучивание кнопки при наведении курсора
EndIf
Else
If Button=1
Button=0
SetGadgetState(3,ImageID(5)) ;изображение при убратии курсора
EndIf
EndIf
EndIf
EndProcedure

Procedure EventButton4(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки 3
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(4))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(4,ImageID(6)) ;изображение при наведении курсора
SetGadgetState(2,ImageID(3))
SetGadgetState(3,ImageID(3))
SetGadgetState(5,ImageID(3))
SetGadgetText(7,"Проигрывание MP3")
PlaySound(0,0) ; Включаем озвучивание кнопки при наведении курсора
EndIf
Else
If Button=1
Button=0
SetGadgetState(4,ImageID(6)) ;изображение при убратии курсора
EndIf
EndIf
EndIf
EndProcedure
Procedure EventButton5(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки 4

Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(5))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(5,ImageID(7)) ;изображение при наведении курсора
SetGadgetState(2,ImageID(3))
SetGadgetState(3,ImageID(3))
SetGadgetState(4,ImageID(3))
SetGadgetText(7,"Проигрывание Видео")
PlaySound(0,0) ; Включаем озвучивание кнопки при наведении курсора
EndIf
Else
If Button=1
Button=0
SetGadgetState(5,ImageID(7)) ;изображение при убратии курсора
EndIf
EndIf
EndIf
EndProcedure

Procedure EventButton6(Event, Gadget, Type, ImageGadget) ; Обработка событий от кнопки справка
Static Button, Buton_DOWN
If Event=#WM_MOUSEMOVE ; Переместилась мышка
If IsMouseOver(GadgetID(6))
myCursor=LoadCursor_(0,#IDC_HAND) ; курсор рука
SetCursor_(myCursor) ; курсор рука
If Button=0
Button=1
SetGadgetState(6,ImageID(9)) ;изображение при наведении курсора
PlaySound(0,0) ; Включаем озвучивание кнопки при наведении курсора
EndIf
Else
If Button=1
Button=0
SetGadgetState(6,ImageID(8)) ;изображение при убратии курсора
PlaySound(0,0) ; Включаем озвучивание кнопки при наведении курсора
EndIf
EndIf
EndIf
EndProcedure

DataSection ; Сохранение рисунка в исполняемом файле на этапе компиляции
Im:
IncludeBinary "PB_Skin5.png" ; фон окна
ImEnd:
Im1:
IncludeBinary "1_3.bmp" ; изображение кнопки выход
Im1End:
Im2:
IncludeBinary "1_1.bmp" ; изображение кнопки выход
Im2End:
Im3:
IncludeBinary "Alloy_1.png" ; изображение : кнопка не нажата
Im3End:
Im4:
IncludeBinary "Alloy_2.png" ; изображение 1-й кнопки
Im4End:
Im5:
IncludeBinary "Alloy_3.png" ; изображение 2-й кнопки
Im5End:
Im6:
IncludeBinary "Alloy_4.png" ; изображение 3-й кнопки
Im6End:
Im7:
IncludeBinary "Alloy_5.png" ; изображение 4-й кнопки
Im7End:
Im8:
IncludeBinary "2_3.bmp" ; изображение о программе 1
Im8End:
Im9:
IncludeBinary "2_1.bmp" ; изображение о программе 2
Im9End:
Im10:
IncludeBinary "o_pragrame.png" ; изображение о программе 3
Im10End:
EndDataSection
; Загрузка рисунков из памяти
CatchImage(0, ?Im, ?ImEnd-?Im)
CatchImage(1, ?Im1, ?Im1End-?Im1)
CatchImage(2, ?Im2, ?Im2End-?Im2)
CatchImage(3, ?Im3, ?Im3End-?Im3)
CatchImage(4, ?Im4, ?Im4End-?Im4)
CatchImage(5, ?Im5, ?Im5End-?Im5)
CatchImage(6, ?Im6, ?Im6End-?Im6)
CatchImage(7, ?Im7, ?Im7End-?Im7)
CatchImage(8, ?Im8, ?Im8End-?Im8)
CatchImage(9, ?Im9, ?Im9End-?Im9)
CatchImage(10, ?Im10, ?Im10End-?Im10)

hWnd = OpenWindow(#Window_0, (GetSystemMetrics_(#SM_CXSCREEN)),(GetSystemMetrics_(#SM_CYSCREEN)), 700, 420, "PB - WinSkin Example", #WS_POPUP|#PB_Window_Invisible)

If hWnd
; Надевание скина на окно
SetWinBackgroundColor(hWnd, GetSysColor_(#COLOR_BTNFACE))
SkinWin(hWnd, ImageID(id))
ResizeWindow(#Window_0,(GetSystemMetrics_(#SM_CXSCREEN)-700)/2,(GetSystemMetrics_(#SM_CYSCREEN)-420)/2,#PB_Ignore,#PB_Ignore)
SetForegroundWindow_(hWnd)


ButtonID=ImageGadget(1, 634, 18, 23, 23, ImageID(2)) ; отоброжение кнопка выход
ButtonID=ImageGadget(2, 50, 60, 64, 64, ImageID(3))
ButtonID=ImageGadget(3, 50, 123,64, 64, ImageID(3))
ButtonID=ImageGadget(4, 50, 183,64, 64, ImageID(3))
ButtonID=ImageGadget(5, 50, 241,64, 64, ImageID(3))
ButtonID=ImageGadget(6, 600, 18, 26, 26, ImageID(8))

TextGadget(7, 270, 90, 200, 15, "Выбери категорию") ; текст по умолчанию
PureCOLOR_SetGadgetColor(7, $FFFEFF, $2e2e2e) ; цвет текста, цвет фона


HyperLinkGadget(rr, 459, 347, 200, 15, "http://www.mirashic.narod.ru/PB_lessons/index.htm", RGB(254, 180, 114) )
SetGadgetColor(rr, #PB_Gadget_FrontColor, RGB(243, 116, 2)) ; цвет ссылки
PureCOLOR_SetGadgetColor(rr, #PureCOLOR_SystemColor, $2e2e2e) ; цвет фона ссылки

EndIf

;SetWindowsTransparency(hWnd, 180) ; Прозрачность окна

HideWindow(id,0)

Repeat
Event=WaitWindowEvent()
Gadget=EventGadget()
If Window=#Window_0
;/////////////// ; Это для того, чтобы можно было тащить окно за любую его часть
If Event = #WM_LBUTTONDOWN ; Левая кнопка мышки нажата
SendMessage_(hWnd,#WM_NCLBUTTONDOWN, #HTCAPTION,0)
EndIf
;///////////////
If Event=#PB_Event_Gadget And Gadget=1
Break ; Прерываем главный цикл
EndIf
;///////////////
If Event=#PB_Event_Gadget And Gadget=6
OpenWindow(2, 0, 0, 200, 200, "О программе", #PB_Window_ScreenCentered|#PB_Window_SystemMenu )
ImageGadget(8, 0, 0, 200, 200, ImageID(10))
EndIf
If Event=#PB_Event_CloseWindow
CloseWindow(2) ; закрыты о программе
EndIf
;///////////////
If Event=#PB_Event_Gadget And Gadget=rr
Silka.s=GetGadgetText(rr) ; Считываем текст ссылки
RunProgram(Silka) ; Передаём адрес ссылки системе
EndIf
;///////////////
If Event=#PB_Event_Gadget
PlaySound(1,0) ; Включаем озвучивание кнопки при наведении курсора
EndIf
;///////////////
EventButton1(Event, Gadget, Type, 1)
EventButton2(Event, Gadget, Type, 1)
EventButton3(Event, Gadget, Type, 1)
EventButton4(Event, Gadget, Type, 1)
EventButton5(Event, Gadget, Type, 1)
EventButton6(Event, Gadget, Type, 1)
EndIf
ForEver

DataSection
IB1:
IncludeBinary "saund/444.OGG"
IB2:
IB3:
IncludeBinary "saund/111.OGG"
IB4:
IB5:
IncludeBinary "saund/logon.CaPa.ru.OGG"
IB6:
EndDataSection



Уроки PureBasic

 

Используются технологии uCoz