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". Длинно, но солидно.


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

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