forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_gui32 - Многострадальные окна (http://forum.boolean.name/showthread.php?t=6249)

odd 18.08.2008 08:36

Lib_gui32 - Многострадальные окна
 
Вложений: 2
Первая версия библиотеки для отображения графических окон.
Оцениваем. Даем советы.
Я уже работаю над добавлением кнопок в окно и над отлавливанием нажатий на них.

Функции такие:
Код:


Init - Инициализация библиотеки. Очистка памяти и установка всех параметров в режим по умолчанию.
SetSkin(im: image) - Задать скин для окон. Скин - это маленькое изображение окна. Требования к нему такие:
    1. Скин можно условно разделить по высоте на 3 равных полоски: заголовок окна, средняя часть и низ окна.
      Все эти части должны быть одинаковой высоты (другими словами высота скина должна быть кратна 3)
    2. Ширина скина не должна быть меньше чем ширина экрана телефона.
SetWindow(x: integer; y: integer; w: integer; h: integer; c: string) - Задать окно, где будет отображаться
    наше графическое окно (x, y) - координаты левого верхнего угла; w и h - ширина и высота окна;
    с - текст заголовка окна.
   
ShowWindow - Отрисовка окна (которое было задано перед этим функцией SetWindow)
SetOffset(i: integer) - Задать отступ в пикселах
CaptionAlign(i: integer) - Задать выравнивание заголовка окна (нужно устанавливать ДО отрисовки окна)
    0 - выравнивание по левому краю окна
    1 - по центру окна
   
CaptionFont(i: integer) - Задать номер шрифта, который будет использоваться при рисовании заголовка окна
    По умолчанию будет использоваться нулевой шрифт.
   
HideWindow - Спрятать окно (восстановаить фон под окном)

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

Piligrim 18.08.2008 10:34

Ответ: Lib_gui32 - Многострадальные окна
 
компилятор не находит функцию Format.
....
Вопрос закрыт

Kurdt 18.08.2008 11:26

Re: Lib_gui32 - Многострадальные окна
 
Вложений: 3
13 скинов готово

Romanzes 18.08.2008 15:12

Ответ: Lib_gui32 - Многострадальные окна
 
Гы. Можно сделать Midlet Pascal для телефона. :)

odd 19.08.2008 08:20

Ответ: Lib_gui32 - Многострадальные окна
 
Цитата:

Сообщение от Romanzes (Сообщение 84647)
Гы. Можно сделать Midlet Pascal для телефона. :)

Не. Так можно скоро на мобиле сделать Vist' у. :-D

ViNT 19.08.2008 12:59

Ответ: Lib_gui32 - Многострадальные окна
 
А вообще, какие элементы управления планируется реализовать?

odd 20.08.2008 01:43

Ответ: Lib_gui32 - Многострадальные окна
 
Уже реализована вертикальная полоса прокрутки. В процессе разработки сейчас некий элемент который можно применять и как полоску меню (типа как под заголовком окна в многих программах) и как полоску кнопок. Затем видимо будет MessageBox. И т. д. Короче проект будет постепенно расширяться и дополняться. Кстати, объявляется конкурс на звучное название проекта. Выкладывайте свои варианты. Просто проект постепенно расширяется. И чтобы не создавать штук 20 разделов для каждой библиотеки, легче создать 1 раздел с кодовым названием проекта и выкладывать все библиотеки там.

Ну да всё это баловство. Никто конечно же не собирается писать новую ОС. Рано или поздно я наступлю на грабли статического класса: в нем всё может существовать только в 1 экземпляре. Зато копится опыт для создания форм2: ренессанс :-D .

odd 20.08.2008 08:32

Ответ: Lib_gui32 - Многострадальные окна
 
Вложений: 2
Пример применения полосы прокрутки для текста.
Возможно у вас появятся проблемы с тем, какие туда параметры передавать.
DrawVScroll(min, max, val, hgt)

Для текста:
min - 0
max - Общая высота текста, полученная при форматировании
val - Значение функции GetPosition (или можете позицию считать самостоятельно)
hgt - Высота текстового окна

Для многостраничного меню (не проверял!!!):
min - 0
max - Общее количество пунктов
val - Selected - GetCursor
hgt - количество пунктов, отображаемых на экране (высота окна меню / высоту курсора (или ItemHeight))

Romanzes 20.08.2008 15:01

Ответ: Lib_gui32 - Многострадальные окна
 
Придумал название для проекта: Java PC Emulator. :super:

Piligrim 20.08.2008 17:21

Ответ: Lib_gui32 - Многострадальные окна
 
Да уж, если не Vista пишем так хоть PC упомянем :(
Нравится мне подход, когда все что с окнами это обязательно IBM подобное, с Microsoft Windows NN :crazy:

Strelok 20.08.2008 19:30

Ответ: Lib_gui32 - Многострадальные окна
 
Название JavaGraphForm

Strelok 20.08.2008 19:40

Ответ: Lib_gui32 - Многострадальные окна
 
=(
Код:

32: errror, function 'MoveDown' cannot be called from here;procedure call or assignement expected
35: error,identifier 'GetPosition' is not constant, function or variable name
39: errror, function 'MoveUp' cannot be called from here;procedure call or assignement expected
42: error,identifier 'GetPosition' is not constant, function or variable name


Romanzes 20.08.2008 23:38

Ответ: Lib_gui32 - Многострадальные окна
 
Насчет PC Emulator, это была шутка. Можно назвать Easy Midlet Interface.

odd 21.08.2008 08:31

Ответ: Lib_gui32 - Многострадальные окна
 
EMI (Easy Midlet Inerface) мне нравтся. Красиво аббревиатурка звучит. Но я ещё подумаю. Предлагайте ещё варианты...
Как вам Aurora? Или GIMP (Graphics Interface for MIDlet Pascal)?

Цитата:

Сообщение от Strelok (Сообщение 84791)
=(
Код:

32: errror, function 'MoveDown' cannot be called from here;procedure call or assignement expected
35: error,identifier 'GetPosition' is not constant, function or variable name
39: errror, function 'MoveUp' cannot be called from here;procedure call or assignement expected
42: error,identifier 'GetPosition' is not constant, function or variable name


Скачай более свежую версию библиотеки Lib_font32 тут: http://forum.boolean.name/attachment...3&d=1219203508
Там добавилась функция GetPosition. У функций MoveUp и MoveDown слегка изменился интерфейс. :@

ViNT 21.08.2008 11:55

Ответ: Lib_gui32 - Многострадальные окна
 
Можно что-то типа "MP GUI Toolkit". Длинно, но солидно.

odd 22.08.2008 03:26

Ответ: Lib_gui32 - Многострадальные окна
 
Ещё вариант: S.I.M.P.L.E. (Skinable Interface for MIDlet Pascal Light Edition) :-D

Romanzes 23.08.2008 00:39

Ответ: Lib_gui32 - Многострадальные окна
 
Начинающийся перебор вариантов названия для проекта часто является признаком скорого его забрасывания.

beZ_probleM 13.09.2008 13:17

Ответ: Lib_gui32 - Многострадальные окна
 
EMI +1!! та блин)) +МИЛИОН!!! МНЕ ОЧ нравитсо такое название=)

odd 15.09.2008 06:39

Ответ: Lib_gui32 - Многострадальные окна
 
Цитата:

Сообщение от Romanzes (Сообщение 84923)
Начинающийся перебор вариантов названия для проекта часто является признаком скорого его забрасывания.

Проект и сейчас живее всех живых. Сейчас производятся улучшения Lib_font32 чтобы она быстрее работала. Потом продолжим создание новых библиотек под проект.

sasha_peleng 04.11.2008 17:37

Ответ: Re: Lib_gui32 - Многострадальные окна
 
Цитата:

Сообщение от Kurdt (Сообщение 84629)
13 скинов готово

Я могу ещё один добавить из моей любимой игры))):ok:

sasha_peleng 04.11.2008 17:38

Ответ: Lib_gui32 - Многострадальные окна
 
:SOS: odd а можно как нибудь соединить полосу прокрутки с этим окном?:SOS:

odd 05.11.2008 06:48

Ответ: Lib_gui32 - Многострадальные окна
 
Дык. Эта. Соединяли уже. Полоса прокрутки успешно прикручивается и к меню и к текстовому окну. Я где-то тут примерчик выкладывал. А ты что хочешь прокручивать?

KeipL 01.12.2008 16:14

Ответ: Lib_gui32 - Многострадальные окна
 
имелось ввиду окошко не на весь экран с полосой прокрутки

AVIZO 26.12.2008 11:47

Ответ: Lib_gui32 - Многострадальные окна
 
Очень прошу еще раз выложить все необходимые библиотеки. А то у меня при компиляции примера ругается на Lib_Font32. И еще на функции GetPosition и MoveUp

temned 26.12.2008 16:59

Ответ: Lib_gui32 - Многострадальные окна
 
Регистрируйся на моем с... м кат ай http://mobilepascal.ucoz.ru/load/2-1-0-28
старое---http://mobilepascal.ucoz.ru/load/2-1-0-21

PacMan 06.02.2009 11:26

Ответ: Lib_gui32 - Многострадальные окна
 
А если:
VCL (Visual Component Library)

liery 10.02.2009 15:03

Ответ: Lib_gui32 - Многострадальные окна
 
Windows XP J2ME Edition
Windows XP MidletPascal Edition

odd 20.02.2009 01:56

Ответ: Lib_gui32 - Многострадальные окна
 
XPюшка устарела. Надо уже Windows 7 называть :-D

liery 08.03.2009 12:40

Ответ: Lib_gui32 - Многострадальные окна
 
Windows interface for Mobile Phones

Pyth_ON 09.03.2009 01:09

Ответ: Lib_gui32 - Многострадальные окна
 
Мой вариает названия либы - MPGL+ (MIDletPascal Graphical Library+ ) :)

cHeRsAnYa 09.03.2009 10:18

Ответ: Lib_gui32 - Многострадальные окна
 
Я за "MPGL+" :)
А причём тут интерфейс винды?

odd 10.03.2009 02:04

Ответ: Lib_gui32 - Многострадальные окна
 
Я тоже за MPGL+. Звучит. Так и назовём. Кстати, есть идея немного добавить новых функций в библиотеки. Как то скроллинг строки в меню, использование нескольких шрифтов в одном тексте одновременно и проч. Дело в том, что мне эти функции самому понадобились, так что возможно скоро выложу.

cHeRsAnYa 31.03.2009 16:09

Ответ: Lib_gui32 - Многострадальные окна
 
Цитата:

Сообщение от odd (Сообщение 84735)
Пример применения полосы прокрутки для текста.
Возможно у вас появятся проблемы с тем, какие туда параметры передавать.
DrawVScroll(min, max, val, hgt)

...

Для многостраничного меню (не проверял!!!):
min - 0
max - Общее количество пунктов
val - Selected - GetCursor
hgt - количество пунктов, отображаемых на экране (высота окна меню / высоту курсора (или ItemHeight))

Проверил для меню - почти всё так, только max - общее количество пунктов + hgt (количество пунктов, отображаемых на экране). Тогда всё нормально отображается.

Трава 30.07.2009 21:26

Ответ: Lib_gui32 - Многострадальные окна
 
Прикольно. :) Молоток, аффтар.

GRAY_WOLF 15.11.2010 23:22

Ответ: Lib_gui32 - Многострадальные окна
 
Цитата:

Сообщение от odd (Сообщение 84626)
Первая версия библиотеки для отображения графических окон.
Оцениваем. Даем советы.
Я уже работаю над добавлением кнопок в окно и над отлавливанием нажатий на них.

Функции такие:
Код:


Init - Инициализация библиотеки. Очистка памяти и установка всех параметров в режим по умолчанию.
SetSkin(im: image) - Задать скин для окон. Скин - это маленькое изображение окна. Требования к нему такие:
    1. Скин можно условно разделить по высоте на 3 равных полоски: заголовок окна, средняя часть и низ окна.
      Все эти части должны быть одинаковой высоты (другими словами высота скина должна быть кратна 3)
    2. Ширина скина не должна быть меньше чем ширина экрана телефона.
SetWindow(x: integer; y: integer; w: integer; h: integer; c: string) - Задать окно, где будет отображаться
    наше графическое окно (x, y) - координаты левого верхнего угла; w и h - ширина и высота окна;
    с - текст заголовка окна.
   
ShowWindow - Отрисовка окна (которое было задано перед этим функцией SetWindow)
SetOffset(i: integer) - Задать отступ в пикселах
CaptionAlign(i: integer) - Задать выравнивание заголовка окна (нужно устанавливать ДО отрисовки окна)
    0 - выравнивание по левому краю окна
    1 - по центру окна
   
CaptionFont(i: integer) - Задать номер шрифта, который будет использоваться при рисовании заголовка окна
    По умолчанию будет использоваться нулевой шрифт.
   
HideWindow - Спрятать окно (восстановаить фон под окном)

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


Почему не прячется окно по HideWindow? Font32 новая.

odd 18.11.2010 18:44

Ответ: Lib_gui32 - Многострадальные окна
 
Да эта либа уже давно не обновлялась. Удивительно, что она вообще работает с новой Lib_font32.


Часовой пояс GMT +4, время: 03:53.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot