version 0.5
[ ОПИСАНИЕ ]~~~~~~~~~~~~~~~~~~~~~~
DF_GUI - это система для работы с различными элементами.
В моей GUI системы реализованы следующие элементы:
1. Окно
2. Текст
3. Изображение
4. Поле ввода.
5. Скроллер.
6. Лист
Каждый элемент может рисоватся как с помощью линий и прямоугольников, так и с помощью ваших рисунков.
[ СКРИНШОТЫ ]~~~~~~~~~~~~~~~~~~~~~~
Есть 3 типа вывода кнопок:
Так же можно и вытворять с окнами.
А можно настраивать всем элементам картинки.
[ АРХИВ ]~~~~~~~~~~~~~~~~~~~~~~
В архиве находится исходник и пример. Без ЕХЕ. ЕХЕ, если надо, могу отдельно сделать.
[ БУДУЩЕЕ ]~~~~~~~~~~~~~~~~~~~~~~
В будущем намереваюсь сделать визуальное создание кнопок. То есть как , допустим, в VB. Выбираешь кнопку. Создаешь - растягиваешь до нужных размеров.
В итоге тебе дается нужный код.
Также может добавлю элементов.
И, конечно же, исправление мелких усатых багов.
[ ВНИМАНИЕ ]~~~~~~~~~~~~~~~~~~~~~~
Не использовать гуи со Strict и SuperStrict. Если их использовать - падение гуи неизбежно.
Так как один объект эту переменную как рисунок использует, а другой - как число. Я тем самым сокращал кол-во переменных.
В следущих версия (но они будут не скоро) исправлю.
Это ведь версия 0.5 только
[ ТУТОРИАЛ ]~~~~~~~~~~~~~~~~~~~~~~
И небольшой туториал по использованию моего гуи в своих проектах.
=-=-=
Для начала давай подключим гуи для своего проекта.
Теперь можно использовать все функции в вашем проекте.
Создадим окно.
DF_GUI.Create_Window (640/2-100,480/2-50,200 , 160, "Main Menu" , "Window1",0,0,0,3,4,3)
(x,y,width , height, text$ , name$, bexit , image, FocusOffDelete, DRL1=2 ,DRL2=1,DRL3=1 )
x, у - начальное положение окна.
width , height - ширина и высота окна.
text - что будет в загаловке окна.
name - имя окна. Используется для вызова некоторых функций.
bexit - будет ли кнопка выхода. [0,1-будет]
image - картинка для окна. Можно оставить равным 0, а можно загрузить картинку. Если картинка будет загружена, то она слева, и весь текст тоже смешается влево.
FocusOffDelete - если фокус проподает с окна - удалить? 1-да 0-нет
DRL1 - тип вывода линий. 1 - вверх. 2-вниз 3-ровно
DRL2,DRL3 - тип вывода прямоугольника. 1 - ровно. 2-градиент. 3-градиент. 4- сильно прозрачное. DRL2 - на само окно. DRL3 - на полосу с названием.
Самое крутое это
1,1,2 или
3,4,3.
Если надо выводить с картинкой:
DF_GUI.Create_WindowImage (x,y,image, name$, FocusOffDelete, DrapNDrop)
DrapNDrop - можно ли таскать окно. таскается всегда за верхнии 25 пикселей.
DF_GUI.Create_Text (x,y,R,G,B, text$ , name$, wind$ )
Создаем текст.
Wind - к какому окну принадлежит объект. Определяется окно по имени.
R,G,B - цвет.
DF_GUI.Create_Bar (x,y,width,n1 , name$, wind$ )
Скроллер.
Width - ширина скроллера. Высота - 25 пкс.
n1 - сколько значений будет в скроллере.
DF_GUI.Function Create_BarImage (x,y,image,image2,n1 , name$, wind$ )
image - картинка - полоса
image2 - ползунок.
DF_GUI.Create_Image (x,y,image , name$, wind$ )
Простая картинка.
DF_GUI.Create_Input (x,y,width,height,text$ , name$, wind$ )
Поле ввода.
text - что вначале будет в поле ввода.
DF_GUI .Create_InputImage (x,y,text,Image , name$, wind$ )
поле ввода, где за место прямоугольника - картинка.
Ширина и высота определяются шириной и высотой картинки.
DF_GUI.Create_List (x,y,width,text$ , name$, wind$ )
Список. Слева и справа - кнопки.
Текст писать так:
"TEST1|TEST2|TEST3|"
В конце обяхательно
|, иначе не будет последнего элемента.
Максимум 10 элементов. Потом, если потребуется, можно сделать легко и больше.
DF_GUI .Create_ListImage (x,y,image,text$ , name$, wind$ )
Список / лист. Картинкой.
DF_GUI.Create_Button (x,y,width, height , image, text$, name$, wind$ )
Обычная кнопка.
image - тип вырисовки [1,2,3,4]
DF_GUI.Create_ButtonImage (x,y, image,imagec,imagedown, name$, wind$ )
image - сама картинка кнопки.
imagec - если навели курсор.
imagedown - если нажали.
Вот пока и все эелементы. Функции для работы с ними:
Проверка на нажатие на кнопку.
GUI_ButtonDown (Window$, Button$)
Window - окно
Button - название вашей кнопки.
Изменить поле text:
ChangeText (Window$, obj$ , text$)
Window - окно
Obj - объект (Input,Button,Text,List,Bar)
Text - на что меняем. Для bar - число.
Получить значение поля text :
GetText (Window$, obj$)
Window - окно
Obj - объект (Input,Button,Text,List,Bar)
Есть ли фокус:
GetFocus (Window$, obj$ )
Window - окно
Obj - объект (Input,Button,List,Bar)
Закрыть окно:
ExitWindow (Window$)
Продолжаем наш проект.
Имеется :
Graphics 640,480
Include "GUI.bmx"
DF_GUI.Create_Window (640/2-100,480/2-50,200 , 160, "Main Menu" , "Window1",0,0,0,1,1,2)
While Not KeyDown (Key_Escape)
Cls
Flip
Wend
Добавим в цикл: GUI_Update()
Теперь у нас будет работать само окно.
Но так ведь не интерестно? добавим надпись:
DF_GUI.Create_Text (10,0,200,200,200, "Preved, Medved." , "Text1", "Window1" )
Это у нас создаем надпись на нашем окне. Отсчет x и y видется от начал границ окна.
DF_GUI.Create_Button (10,50,180, 20 ,3, "Exit", "Button1", "Window1" )
Создадим кнопку.
Так. Теперь есть некоторые элементы.
Добавим в цикл, после GUI_Update() :
ChangeText ("Window1", "Button1" , GetText ("Window1", "Text1"))
Это меняет у нас название кнопки на название текста.
Можно сделать два варианта завершения программы:
If GUI_ButtonDown ("Window1", "Button1") Then ExitWindow ("Window1")
Просто закрывает окно.
If GUI_ButtonDown ("Window1", "Button1") Then End
Завершает саму программу.
Я остановлюсь на втором.
Вот весь текст:
Graphics 640,480
Include "GUI.bmx"
DF_GUI.Create_Window (640/2-100,480/2-50,200 , 160, "Main Menu" , "Window1",0,0,0,1,1,2)
DF_GUI.Create_Text (10,0,200,200,200, "Preved, Medved." , "Text1", "Window1" )
DF_GUI.Create_Button (10,50,180, 20 ,3, "Exit", "Button1", "Window1" )
While Not KeyDown (Key_Escape)
Cls
GUI_Update()
ChangeText ("Window1", "Button1" , GetText ("Window1", "Text1"))
If GUI_ButtonDown ("Window1", "Button1") Then End
Flip
Wend
Кстати, выражаю благодарность МоКе и dimanche13 за помощь. =)