|
Xors3D Графический движок с поддержкой DirectX9 |
11.04.2011, 20:10
|
#91
|
Бывалый
Регистрация: 10.06.2006
Сообщений: 808
Написано 354 полезных сообщений (для 832 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
итак, я опять за старое...
очень интересует когда будет готов редактор форм? вроде ты его обещал запилить после нового года. просто когда я доделаю игру, то хотелось бы не заморачиваться и не тормозиться на создании своего гуи.
|
(Offline)
|
|
11.04.2011, 20:22
|
#92
|
Знающий
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений (для 299 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Альфа версия будет в этом месяце, скорее всего без возможности сохранять \ загружать, просто для отладки и проверки удобства.
Вообще думал что сделаю его гораздо быстрее, т.к. для GUIw512 я делал его меньше недели (хоть он и не полный был, но все же). А тут хочется сделать все основательно, универсально...
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо wolfhound512 за это полезное сообщение:
|
|
15.04.2011, 18:35
|
#93
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Разобрался. Такие самозакрытия получаются при проверке MouseHit. Если использовать MouseDown - все ок. Правда меню при этом начинает елозить за мышкой, если кнопка еще не отпущена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
15.04.2011, 19:02
|
#94
|
Знающий
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений (для 299 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
специфика заголовков под Б3Д описана тут:
http://albalynx.com/articles/docs/Russian/pg_lang.html
за красной чертой. Там вместо одного указателя передаются две переменные. Есть еще две функции с отличиями.
Да, глюк с исчезанием наблюдается. В Хорсе помогает xFlushMouse()
If (xMouseHit(2)) Then
xFlushMouse()
alOpenContext(context, Null, xMouseX(), xMouseY(), width, height, alGetValueI(fm_point_pos), alGetValueI(fm_point_menu));
EndIf
В блице что-то от него толку нету. Придется использовать MouseDown, как ты правильно заметил. Чтоб меню не таскалось за мышкой нужно чуть-чуть усложнить условие, думаю знаешь как.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
15.04.2011, 19:06
|
#95
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Кстати, даже с MouseHit почти не глючит, если вызывать функцию в самом конце цикла программы, после обработки и проверки GUI.
|
(Offline)
|
|
15.04.2011, 19:13
|
#96
|
Знающий
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений (для 299 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Все дело в том, что если клик пришелся между вызовами
GUI->Update() и Context->Open(), то сначала открывается меню, а потом ГУИ узнает о клике, видит что клик за пределами контекстного меню и сразу закрывает его.
Соответственно чем между кода между этими функциями, тем меньше вероятность такой ситуации.
Вариант решения:
If MouseDown(2) Then
If (pressed < 2) Then
pressed = pressed + 1
alOpenContext(context, 0, 0, MouseX(), MouseY(), width, height, alGetValueI(fm_point_pos), alGetValueI(fm_point_menu));
EndIf
Else
pressed = 0
EndIf
pressed < 2 - Чтобы если случилась выше описанная ситуация, то контекст мог открыться повторно, когда ГУИ уже знает о клике и не станет закрывать контекст
Если бы FlushMouse() работал, то так мудрить не пришлось бы
Последний раз редактировалось wolfhound512, 15.04.2011 в 19:29.
Причина: Исправил ошибку в условии
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
15.04.2011, 19:23
|
#97
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Спасибо
Да я знаю что у блитца свои косяки. Но в данном проекте, над которым сейчас временно работаю, ксорс использовать не могу из-за некоторых моментов работы ксорса с 2д
|
(Offline)
|
|
15.04.2011, 19:51
|
#98
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Немного проапгрейдил твой метод, может потом кому пригодится:
If MouseDown(2) And context_button<2 And alMouseFree() Then
context_button=context_button+1
If context_button=1 Then
context_x=MouseX()
context_y=MouseY()
EndIf
alOpenContext(contex_menu,0,0,context_x,context_y)
ElseIf Not(MouseDown(2)) Then
context_button=0
EndIf
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.04.2011, 23:10
|
#99
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Нубский вопрос, но как сделать выделенным определенный элемент листбокса по номеру элемента? Через alSetValueI не получается
Все, разобрался, мой косяк Конкретно alSetValueI не заработал, но придумал как через alSetValueS сделать
|
(Offline)
|
|
17.04.2011, 00:13
|
#100
|
Знающий
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений (для 299 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
alSetValueI и alSetValueS - это одно и тоже, просто в одном случае удобнее использовать первое (если ты имена элементов в списке задавал как номера), в другом второе.
Если тебе удобнее именно по индексу, то можно так:
alSelect( alGetParentChildren( listbox, index ) )
index - порядковый номер в списке, т.е. если из середины списка удалить элемент, то номера последующих уменьшатся на один.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.04.2011, 10:56
|
#101
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Понял в чем косяк Спасибо!
|
(Offline)
|
|
25.04.2011, 23:35
|
#102
|
Знающий
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений (для 299 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Видео демонстрация редактора форм, лучше смотреть в HD (всего 17Мб)
http://www.youtube.com/watch?v=JIaQQ_e-LnY
Завтра будет очередной релиз с его участием
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо wolfhound512 за это полезное сообщение:
|
|
26.04.2011, 18:20
|
#103
|
Знающий
Регистрация: 18.02.2008
Сообщений: 276
Написано 121 полезных сообщений (для 299 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Версия 0.8.6.0
Изменения: - Новый элемент cParamSet.
- Новый элемент cResizer.
- В cTextBox добавлен флаг ALF_Password для ввода пароля. Не отображает текст и не дает его скопировать.
- В cTextArea добавлены клавиши PageUp, PageDown.
- В поля ввода добавлены сочетания Ctrl+Insert, Shift+Insert.
- ...
- ...
Предупреждения:
Переименованы константы: - ALF_TreeHeightByRows -> ALF_RowsInsteadHeight
- ALF_ListHideEmptyRows -> ALF_HideEmptyRows
- ALF_Held -> ALF_Hold
Удалены функции: - SetListScrollStep() -> используйте SetScrollStep()
- SetSBarStep() -> используйте SetScrollStep()
Так же в архиве лежит редактор форм. Лежит он там только для тестирования, т.к. функционал его еще довольно ограничен:
- Нельзя сохранять\загружать созданные лэйауты
- Нельзя добавлять элементы в списки
- Нельзя добавлять элементы в Desktop
- Нельзя удалять элементы
Жду замечания по поводу удобства и по поводу того что еще туда можно добавить
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо wolfhound512 за это полезное сообщение:
|
|
26.04.2011, 19:42
|
#104
|
Дэвелопер
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений (для 2,706 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
Спасибо за пароль
|
(Offline)
|
|
27.04.2011, 00:07
|
#105
|
Бывалый
Регистрация: 10.06.2006
Сообщений: 808
Написано 354 полезных сообщений (для 832 пользователей)
|
Ответ: AlbaLynx [Xors3D GUI]
реквестирую больше семплов. редактор оценить по достоинству не смог - координаты курсора не совпадали с внутренними координатами программы.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:09.
|