давайте сделаем свой gui!!!

Предыдущая тема Следующая тема Перейти вниз

давайте сделаем свой gui!!!

Сообщение  Eric-S в Вт Фев 03, 2009 1:10 pm

Привет!

Некоторые, и я в том числе, уже запарились, с winApi, да и просто всякими разными графическими библиотеками. Да и на оф форуме не оставляют попыток. Но всё чего-то не то.

Я уже давно хотел, но вот наконец-таки начал.
http://eric50.narod.ru/wgui/

обновление от 5 февраля 2009.
выводяться менюшки и добавлено событие команды меню.


В первую очередь это набор функций, для создания оконного интерфейса в приложении.

в какой-то степени, хочу ориентироваться на visual basic. Например мне нравиться идея событийного программирования. И у себя желаю сделать нечто похожее. Тем более winApi сами склонны к подобному стилю.

Заранее закладываю архитектуру для тяжолых интерфейсов, чтобы не пришлось переделывать, если проект доживёт до такого этапа.

К сожалению freebasic пока слабоват в плане объектноориентированности. По этому всё выношу на процедурный уровень. Технология у меня уже отработана.

Без вашей помощи, развивать проект будет сложно. Так что я надеюсь на поддержку. Или хотябы на ответы, а вопросов будет много!

Если есть исходники, документация, делитесь. В прочем мыслями тоже. Возможно что-то пойдёт в дело.

Проект у меня не на приоритетном месте. Заниматься им буду, по случаям и необходимости. А так же если появиться интересные и понятные примеры.

План на первое время:
сделать вывод текста на форму.
сделать менюшку.
сделать кнопочки флажочки и переключатели
сделать список.
сделать дерево
сделать поле редактирования
сделать стандартные диалоговые окна

Если у кого возникло желание дополнить или внести изменения - пишите, любая помощь будет не лишней.


Последний раз редактировалось: Eric-S (Чт Фев 05, 2009 9:46 am), всего редактировалось 2 раз(а)

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  electrik в Вт Фев 03, 2009 7:40 pm

да, я тебя полностью поддерживаю, надо взглянуть на твой исходник. ты хочешь сделать набор функций, или графический интерфейс в котором можно будет добавлять кнопки и т.д. можно попробовать, только я лично не совсем разбираюсь в сложных окнах, и может я туп, но меня всегда смущали темы типа:
sendmessage
translatemessage
и такие подобные штуки.
народ, только давайте, будем делать графический интерфейс, чтоб он полностью управлялся с клавиатуры, добавление кнопок, создание окон, просто в наше время много незрячих программистов, а как правило, зачистую, все современные средства разработки приложений, не работают с клавиатуры. предположим, нарисована на экране сетка, там кнопки, переключатели и т.д. как такую сетку юзать, только с мыши. я сам в этом числе, но мне одному такую прогу не написать, причем без зрячих делать графическую прогу, сами понимаете. конечно есть люди которые это как-то могут, но они видимо моньяки и их нет на форуме.
так что, если кто может, можно заняться этим проектом, даже не ради gui, все наверное уже выбрали кому что нужно, а ради самообучения программировать на FreeBasic.

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 36
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  DiG. GeRR в Вт Фев 03, 2009 8:22 pm

Интересно... Сейчас архивчик гляну...

electrik, а как с клавиатуры можно сделать, ну, к примеру, форму? Трудновато представить... Просто натыкать горячих клавиш?

DiG. GeRR

Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 25
Откуда : Рудный, Казахстан

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  electrik в Вт Фев 03, 2009 8:54 pm

DiG. GeRR писал:
electrik, а как с клавиатуры можно сделать, ну, к примеру, форму? Трудновато представить... Просто натыкать горячих клавиш?

а как в vb, добавляем форму, там идет список:
caption
with
height
border
и т.д.
обычные окошки в которые мы вписываем значения
тоесть можно форму менять мышкой, а можно и в ручную подставлять параметры.

как это реализовать на практике. например у нас есть менюшка:
файл правка вид вставка помощь
к примеру мы заходим в меню вставка и там появляется:
создать окно
создать диалог
редактор меню
добавить кнопку на форму
добавить кнопку в диалоговое окно

например мы решили добавить кнопку в диалоговое окно. выбираем это дело в меню. появляется окошко в котором мы выбираем параметры кнопки типа:
pushbutton
checkBox
radiobutton
ну соотведственно выставляем параметры кнопки длина, ширина высота и когда выбираем окно редактирования кода, прога сама генерит код к данной кнопке и мы оказываемся на коде:
case testButton_1001
код для данной кнопки
case exitbutton_1002
код для этой кнопки.

все приведено поверхностно, но суть думаю понятна.
конечно зрячему человеку проще перетащить элемент с сетки на форму мышкой, чем лазить в менюшках и выбирать кучу всего. можно ведь сделать и так, и так. вконце концов в vb так и сделано, ну а писать на vb, вы сами понимаете... конечно круто, легко, но проги получаются платформозависимы, контролозависимы, много от чего зависимы, да и не шустро быстры.

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 36
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Ср Фев 04, 2009 12:29 am

Я уже сделал, но не протестировал 3 события. form_load, form_unload и form_paint.

К сожалению придёться почпакать по клавишам, регистрируя функции.
Примеры смотрите в папочке examples

Сам делаю тоже для обучения. И вот ковыряясь, уже начал немного больше понимать. Пойду читать Ицзелиона, может ещё больше пойму в этих окнах.

Возможно после и редактор форм можно будет сварганить. Но об этом пока рано.


Последний раз редактировалось: Eric-S (Чт Фев 05, 2009 9:39 am), всего редактировалось 1 раз(а)

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Ср Фев 04, 2009 2:05 am

Хм. И вот первый элемент, и мне совсем непонятно, как его делать.
http://www.firststeps.ru/mfc/steps/help/r.php?790

Как я понимаю, это должен быть лэйбл. Но вот формат атрибутов... Ну чтож все молчат, тогда я творю свои пакости.

Архивчик обновил. Теперь библиотека делаеться по настоящему. И событие регистрируеться.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Ср Фев 04, 2009 5:53 am

Я чего-то не пойму. Чтобы мне сделать лэйбл, мне что, нужно ещё одно - дочернее окно создавать?

Кстати, ещё обновление. Добавил событие по нажатию клавиши.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  electrik в Ср Фев 04, 2009 6:21 pm

лучше сделать и статическую и динамическую библиотеку, а там народ пусть сам думает, или большой бинарник или таскание файлов за собой.

electrik

Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 36
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Чт Фев 05, 2009 4:40 am

Ок. Электрик принято.
Тогда делаю пока динамическую, из неё будет легче сделать статическую.

А я вот разрываюсь прямо. Не знаю, в каком стиле реализовывать функции для создания меню.
Сейчас сидел и въедливо вчитывался во все доступные мне справочники по win api.
Менюшки... Есть много функций, но нагружать ими юзера тоже не хочеться.

А что же собственно хочеться? Выскажите своё мнение! Как бы вы хотели поиметь функции для создания меню?
Я же эту тему спецально для высказывания мнений создал!
Пишите здесь не только о менюшках, но и о других элементах. И вообще о всём, что вы хотите.
Как это реализовывать, уже вопрос другой. Но в начале нужно понять, чего собственно хочеться!


Вот что я только что сделал для создания меню.

функция для создания раскрывающегося меню
WGUI_MenuInsertPopUp( [ресурс формы], [текст] {, родительское меню} )
возвращает ресурс меню (для привязки дочерних пунктов)

функция для создания простого пункта меню
WGUI_MenuAppend( [ресурс формы], [текст] {, родительское меню} )
возвращает идентификатор, этого пункта.

В прочем в пятом примере всё показано, можете качнуть обновлённый архив.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Чт Фев 05, 2009 4:53 pm

О! Радуйтесь люди! До меня наконец-то допёрло, как делать элементы. Всё оказалось проще, чем я боялся.
Ща начну чпакать. Точнее сейчас буду делать систему связывания элементов с формой.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Сб Фев 07, 2009 7:11 am

Имя мне Антихрист....
А может просто: "крыша едет не спеша, тихо шифером шурша".

Читал я тут про DialogBox и вот что думаю. Сея коробочка конечно хороша. Если кодить конкретные задачи напрямую или с файлами ресурсов.
Но в случае своей библиотеки, придёться мне видать, реализовывать её функционал.
Например так и не получилось у меня с клавиатуры менять фокус элементов.
Да и события с окном, происходят совсем другие.
Но вот, что меня не прельщает, так это сабклассинг. Впрочем даже ковыряния с цветами и размерами...

Ладно, как и задумывалось, попытаюсь пока сделать необходимый минимум. А красоту можно навести и потом.

Только что нашол книжечку

Р.М.Ганеев "ПРОЕКТИРОВАНИЕ ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ СРЕДСТВАМИ WIN32 API".

Да и сайтик
http://www.firststeps.ru/
тоже имеет много чего интересного, по теме.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Сб Фев 07, 2009 12:04 pm

Не-е-е! Крыша моя точно съехала. Всё сломал, глюки. Одно на другое наезжает.
Попробую книжку умную читать. Надеюсь доганю тему.

Какие-то стили непонятные. И окна бешенные!
А ведь так хорошо всё начиналось...

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  DiG. GeRR в Вт Фев 10, 2009 8:06 pm

Э... Что за tree.bi, которого нет ни в архиве, ни среди моих стандартных инклудов? Хотел тут покопаться на досуге, после усиленных будней)), а хрен - не компилится... Ошибочка: "src/wgui.bas( 8 ) error 24: File not found, "tree.bi" in '#include "tree.bi"'"

DiG. GeRR

Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 25
Откуда : Рудный, Казахстан

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Ср Фев 11, 2009 5:57 am

Дык я уже писал здесь.

Это моя разработка. смотреть пакет plus.
качать со страницы

Наверное мне нужно было заострить на этом внимание. Но я решил, что и маленькая приписка в !info.txt будет достаточной.
А в архив не стал в кладывать, поскольку развиваеться параллельно. И я решил, что незачем дублировать.

Если хочешь ковыряться, лучше со мной свяжись по аське или скайпу. Там есть путанные места. Кое-что закоментил.
Напрямую мне легче будет объяснить.

Займусь этим проектом чуть позже. Я ведь сам в этих win32 api не очень-то разбираюсь.

Хотя... Я там кажись с событиями wm_command и wm_keydown перемудрил. Нужно будет это место ещё разок пересмотреть.

а библиотека tree.... Ну что тут сказать. Я видел какой-то перебор окон, но ещё даже не читал об этом. По этому я заюзал список, чтобы в него скидывать описание элементов. Массивы меня последнее время всё больше не удовлетваряют.

Сейчас всё ещё ковыряюсь с регулярными выражениями и синтаксическим анализатором. И до wgui у меня руки не доходят.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  DiG. GeRR в Ср Фев 11, 2009 8:10 pm

Спасиб. Жаль, но у меня, если честно, тоже особо нет времени, чтоб заняться этим проектом. Но я код пока посмотрел, вроде ничего непонятного пока не заметил, ну, если вопросы будут, тогда обращусь.

DiG. GeRR

Сообщения : 101
Дата регистрации : 2009-01-30
Возраст : 25
Откуда : Рудный, Казахстан

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Чт Фев 12, 2009 2:54 pm

Сегодня утричком почитал про дочерние окна, про получение нажатых клавишь.
И понял, что придёться опять переделывать.
А ещё есть какой-то EnumChildWindow так я вообще не понял на кой он нужен.
Типа он перебирает все дочерние окна, у указанного родительского окна. И по ходу для каждого окна вызывает функцию.
И вот мне стало непонятно. Кому же нужна такая чудесная функция?

Жаль, что на такую хорошую библиотеку времени нет. Сегодня я уже помучался с регулярными выражениями. Пойду отдыхать! Больше не могу писать.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  diakin в Пн Апр 06, 2009 6:22 pm

Для себя я пришел к выводу, что GUI лучше делать на Rapid-Q, а процедуры обработчиков при необходимости высокого быстродействия вызывать из FreeBasic dll.
GUI на RapidQ делается на раз, типа
Код:

$INCLUDE "RAPIDQ.INC"
'--- Declarations ---
declare sub BtnOnClick

CREATE Form AS QFORM
Caption = "Form1"
Width = 640
Height = 480
Center

CREATE Button1 AS QBUTTON
Caption = "Button1"
Left = 4
Top = 4
OnClick=BtnOnClick
END CREATE

END CREATE
Form.ShowModal

sub BtnOnClick
Form.color= clred
end sub

Поэтому особо актуальным вопросом разработку гуя на FB не считаю. Ну это я для себя так решил, понятно..

diakin

Сообщения : 37
Дата регистрации : 2009-04-06
Откуда : С-Петербург

Посмотреть профиль http://miraxem.com

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  diakin в Пн Апр 06, 2009 6:28 pm

Eric-S пишет:
...
Сегодня я уже помучался с регулярными выражениями. ....

А вот с регэкспами сам хочу разобраться. Сейчас пишу тестер регэкспов, во первых, чтобы разобраться самому, и во -вторых чтобы дать пользователю хоть какой-то инструмент для отладки регэкспов.

diakin

Сообщения : 37
Дата регистрации : 2009-04-06
Откуда : С-Петербург

Посмотреть профиль http://miraxem.com

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  diakin в Ср Апр 08, 2009 11:36 pm

Кстати вот здесь http://tech.groups.yahoo.com/group/Rapid-Q/ (надо регистрироваться для доступа к файлам)
в секции files лежит FreeBasicOOP.zip

'########################################################################################
'# This code is attempting to be an starting point for building an "oo library" ...!? #
'# ha,ha,hm ...--^ #
'# for FreeBasic Compiler. #
'# it is not finished and no warranty in any kind. #
'# if you improve let me know and send me a copy to "rqwork@4x.ro" or "rqwork@3x.ro" #
'# --- 2005 Nastase Eodor --- #
'# --- v 0.00000000000001 --- #
'########################################################################################

diakin

Сообщения : 37
Дата регистрации : 2009-04-06
Откуда : С-Петербург

Посмотреть профиль http://miraxem.com

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  DoReMi в Чт Апр 09, 2009 8:28 am

diakin пишет:
Поэтому особо актуальным вопросом разработку гуя на FB не считаю. Ну это я для себя так решил, понятно..

RapidQ хорошая разработка, на сегодня это считай единственный простой способ разработки GUI, но FB во многом уступает. Всё равно нужно что-то своё.
Тот же Nastase Eodor вместо того, чтобы доделать какой-то один вариант своих библиотек, постоянно в поиске, привыкнуть невозможно.
avatar
DoReMi

Сообщения : 67
Дата регистрации : 2008-08-28
Возраст : 44
Откуда : Волгодонск

Посмотреть профиль http://doreonline.blogspot.com

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  diakin в Пт Апр 10, 2009 12:10 pm

DoReMi пишет:

RapidQ хорошая разработка, на сегодня это считай единственный простой способ разработки GUI, но FB во многом уступает. Всё равно нужно что-то своё.
Тот же Nastase Eodor вместо того, чтобы доделать какой-то один вариант своих библиотек, постоянно в поиске, привыкнуть невозможно.

Проблема RapidQ в том, что проект остановлен и его приходится использовать в том виде, в каком он есть. И все равно в плане GUI он может практически все, что требуется.
Nastase проделал гигантскую работу и в направлении создания FB GUI и IDE для FB и RapidQ. И все равно законченного продукта нет.
(Вот на днях он залил на http://groups.yahoo.com/group/rapidq/ последний вариант IDE в исходниках, можно потестить.)
Кроме того, что там будет с FB в плане классов в дальнейшем ( я правда последние версии не видел) тоже неизвестно. Может они сами будут делать какую-то оболочку.
Просто можно потратить много времени и усилий, а довести до ума не получится.

diakin

Сообщения : 37
Дата регистрации : 2009-04-06
Откуда : С-Петербург

Посмотреть профиль http://miraxem.com

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Пн Апр 13, 2009 2:32 pm

Я уже давно продумываю другую стратегию пользовательского интерфейса.
Но тут уже больше стратегия операционной системы.

Суть заключаеться в том, что программить самому интерфейс вообще не будет нужно.
Будет около 30 стандартных приложений, к которым будут подключаться плагины.
Хотя сейчас например есть уже miranda im, я когда познакомился с ней, долго смеялся. Поскольку увидел воплощение своей идеи. Правда не совсем удачное, но принцып тот же.

Возьмём например текстовый редактор. Их сучествует огромное число. Но когда человек хочет сделать редактор со своим функционалом, ему приходиться переписывать всё с нуля. Что крайне не смешно.
А у пользователя на компьютере оказываеться пол сотни разных редакторов, с различным функционалом.
В то же самое время всё это можно соеденить в одной оболочке, добавляя просто плагины.
Будет всё куда удобнее и проще для разработчика.

Вроде бы есть редактор emac. Как я понял в нём похожая идея. Но я не юзал и ничего сказать не могу.

Так вот. Необходимость в универсальных графических библиотеках для такого способа отпадёт. А стандартный интерфейс проще будет сделать на чистом api операционной среды.
Да и портирование будет много проще.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  DoReMi в Вс Авг 02, 2009 3:17 pm

Eodor опубликовал новую версию Win GUI ToolKit http://www.freebasic.net/forum/viewtopic.php?t=14224
avatar
DoReMi

Сообщения : 67
Дата регистрации : 2008-08-28
Возраст : 44
Откуда : Волгодонск

Посмотреть профиль http://doreonline.blogspot.com

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Eric-S в Пн Авг 03, 2009 12:25 pm

Интересная новость. Спасибо!

А я вот gui теперь на C++ делаю и winApi.
Хотя не целенаправлено, а вместе с программой её пользующую.
По этому там далеко не всё есть, что нужно.

Но возможно сделаю и подключалку для freebasic. Хотя то, что нет наследование классов, может осложнить жизнь.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 33
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: давайте сделаем свой gui!!!

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения