Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 10.03.2009, 18:18   #31
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

Конечно не показывает. Ты же сначала сохраняешь курсор, а потом делаешь menu32.init, который все переменные стирает и ставит дефолтные(по умолчанию) значения. Просто переставь оператор menu32.createcursor(200, 20, 255255000); так, чтоб он был после menu32.init.
(Offline)
 
Ответить с цитированием
Старый 16.03.2009, 18:54   #32
Doctor Drive
Нуждающийся
 
Аватар для Doctor Drive
 
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Ответ: Lib_menu32 - Графическое меню без головной боли

а как цвет курсора ставится? думал RRRGGGBBB где R,G,B - (0..255)
Но оказывается не так...
(Offline)
 
Ответить с цитированием
Старый 16.03.2009, 19:14   #33
GRAY_WOLF
Разработчик
 
Аватар для GRAY_WOLF
 
Регистрация: 15.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений
(для 93 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

Сообщение от Doctor Drive Посмотреть сообщение
а как цвет курсора ставится? думал RRRGGGBBB где R,G,B - (0..255)
Но оказывается не так...

image CreateCursor(w: integer; h: integer; c: integer) - Создать прямоугольник с размерами w на h и ARGB цветом с.
вот пример LoadCursor(CreateCursor(120, 16, 4281428406));
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
(Offline)
 
Ответить с цитированием
Старый 16.03.2009, 20:20   #34
Doctor Drive
Нуждающийся
 
Аватар для Doctor Drive
 
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Ответ: Lib_menu32 - Графическое меню без головной боли

ага, но что за ARGB? в гугле ниче не нашел...


а терь проблема - после нажатия на "огонь" меню не появляеццо...


unit Edit;

interface
    
procedure open;

implementation
    
    uses FileSystem
imloadjsr75font32menu32effectscanvasjpeg;
        
    
procedure open;
    
        var 
openstring;
        
imimage;
        
coefwreal;
        
twthselkeyinteger;
        
resizeboolean;
        
    
begin
    font32
.init(2);
    
font32.Font(0); font32.LoadFont('Verdana_7'); 
    
font32.Font(1); font32.LoadFont('Verdana_7b');
    
    
th := font32.TextHeight;
    
tw := font32.TextWidth('5 - menu')/2;
        
        
open := FileSystem.foldselect;
        
im := imloadjsr75.loadimage(open);
        if 
getImageWidth(im) <= getwidth then resize := false else resize := true;
        
coefw := getImageWidth(im)/GetImageHeight(im);
        
showcanvas;
        
            
repeat
            
if resize false then drawimage(im,0,0);
            if 
resize true then drawimage(canvas.resize_image(imgetwidthtrunc(getwidth/coefw)),0,0);
            
setcolor(0,0,0);
            
fillrect(0getheight-thgetwidthth);
            
font32.Font(1);
            
DrawString('5 - Menu'getheight-thgetwidth/2-tw); //и вот тут рисует текст не тем шрифтом что надо
            
repaint;
            
repeat key := GetKeyClicked until KeyToAction(key) = GA_FIRE;
            
                    if 
resize false then drawimage(im,0,0);
                    if 
resize true then drawimage(canvas.resize_image(imgetwidthtrunc(getwidth/coefw)),0,0);
                    
menu32.init;
                    
menu32.CreateCursor(130244278190250);
                    
menu32.SetMenuWindow(00getwidthgetheight);
                    
menu32.MenuFonts(01);
                    
menu32.additem(loadimage('/menu/saveas.png'), 'Save as...');
                    
menu32.additem(loadimage('/menu/effects.png'), 'Effects');
                    
menu32.additem(loadimage('/menu/back.png'), 'Close');
                    
drawmenurepaint;

                    
repeat
                    key
:=KeyToAction(GetKeyClicked);
                    if 
key=GA_DOWN then begin CursorDownDrawMenuRepaintDelay(100); end;
                    if 
key=GA_UP then begin CursorUpDrawMenuRepaintDelay(100); end;
                    
until (key=GA_FIRE); delay(100); 

Последний раз редактировалось Doctor Drive, 16.03.2009 в 20:51.
(Offline)
 
Ответить с цитированием
Старый 16.03.2009, 20:39   #35
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

createCursor уже возвращает image, нет необходимости в loadimage.
ARGB - A - это прозрачность курсора.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Doctor Drive (17.03.2009)
Старый 16.03.2009, 21:19   #36
Doctor Drive
Нуждающийся
 
Аватар для Doctor Drive
 
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Ответ: Lib_menu32 - Графическое меню без головной боли

Сообщение от pilgrim Посмотреть сообщение
createCursor уже возвращает image, нет необходимости в loadimage.
А я и не делал loadimage для курсора.
-------------------------------------
А что на щет того что меню не показывается?!
(Offline)
 
Ответить с цитированием
Старый 16.03.2009, 21:43   #37
GRAY_WOLF
Разработчик
 
Аватар для GRAY_WOLF
 
Регистрация: 15.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений
(для 93 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

Сообщение от Doctor Drive Посмотреть сообщение
А я и не делал loadimage для курсора.
-------------------------------------
А что на щет того что меню не показывается?!
procedure MainMenu; // Главное меню
begin
menu32.init; Cls;
AddItem(LoadImage('/book.png'), 'text'); AddItem(LoadImage('/REV.png'), 'text1');
AddItem(LoadImage('/Boot.png'), ''text2); AddItem(LoadImage('/exit.png'), 'Выход');
SetMenuWindow(10, 10, wi - 10, hi / 2);
LoadCursor(CreateCursor(150, 33, 4281428406)); MenuFonts(0, 1);
DrawMenu; Repaint;
repeat
key:=KeyToAction(GetKeyPressed); Delay(30);
if key = GA_UP then begin CursorUp; DrawMenu; Repaint; Delay(250); end;
if key = GA_DOWN then begin CursorDown; DrawMenu; Repaint; Delay(250); end;
if key = GA_FIRE then
begin
if Selected = 0 then //действия
if Selected = 1 then //действия 1
if Selected = 2 then //действия2
if Selected = 3 then Halt; // Выход
end;
until false;
end;

вот так уменя работает
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
(Offline)
 
Ответить с цитированием
Старый 16.03.2009, 22:04   #38
Doctor Drive
Нуждающийся
 
Аватар для Doctor Drive
 
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Ответ: Lib_menu32 - Графическое меню без головной боли

Я знаю как меню делается. И делал. А вотут в проге оно не появляется
(Offline)
 
Ответить с цитированием
Старый 17.03.2009, 15:39   #39
GRAY_WOLF
Разработчик
 
Аватар для GRAY_WOLF
 
Регистрация: 15.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений
(для 93 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

Сообщение от Doctor Drive Посмотреть сообщение
Я знаю как меню делается. И делал. А вотут в проге оно не появляется
Выложи исходник. Возможно кто нибудь и поможет.
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
(Offline)
 
Ответить с цитированием
Старый 17.03.2009, 17:36   #40
Doctor Drive
Нуждающийся
 
Аватар для Doctor Drive
 
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Ответ: Lib_menu32 - Графическое меню без головной боли

Нету смысла выкладывать целый исходник. Вот разве что целый юнит выложу (напишу сюда). Место проблемы возле коментариев (тоесть часть кода, где должно появится меню и то, где текст не там рисует) Вот:
unit Edit;

interface
    
procedure open;

implementation
    
    uses FileSystem
imloadjsr75font32menu32effectscanvasjpeg;
        
    
procedure open;
    
        var 
openstring;
        
imimage;
        
coefwreal;
        
twthselkeyinteger;
        
resizeboolean;
        
    
begin
    font32
.init(2);
    
font32.Font(0); font32.LoadFont('Verdana_7'); 
    
font32.Font(1); font32.LoadFont('Verdana_7b');
    
    
//ВОТ КООРДИНАТЫ ТЕКСТА
    
th := font32.TextHeight;
    
tw := font32.TextWidth('5 - menu')/2;
        
        
open := FileSystem.foldselect;
        
im := imloadjsr75.loadimage(open);
        if 
getImageWidth(im) <= getwidth then resize := false else resize := true;
        
coefw := getImageWidth(im)/GetImageHeight(im);
        
showcanvas;
        
            
repeat
            
if resize false then drawimage(im,0,0);
            if 
resize true then drawimage(canvas.resize_image(imgetwidthtrunc(getwidth/coefw)),0,0);
            
setcolor(0,0,0);
            
fillrect(0getheight-thgetwidthth);
            
font32.Font(1);
            
//ВОТ ТУТ ТЕКСТ НЕ ТАМ РИСУЕТ:
            
DrawString('5 - Menu'getheight-thgetwidth/2-tw);
            
repaint;
            
repeat key := GetKeyClicked until KeyToAction(key) = GA_FIRE;
            
            
//А ВОТ ЭТО МЕНЮ НЕ ПОКАЗЫВАЕТСЯ:
                    
if resize false then drawimage(im,0,0);
                    if 
resize true then drawimage(canvas.resize_image(imgetwidthtrunc(getwidth/coefw)),0,0);
                    
menu32.init;
                    
menu32.CreateCursor(130244278190250);
                    
menu32.SetMenuWindow(00getwidthgetheight);
                    
menu32.MenuFonts(01);
                    
menu32.additem(loadimage('/menu/saveas.png'), 'Save as...');
                    
menu32.additem(loadimage('/menu/effects.png'), 'Effects');
                    
menu32.additem(loadimage('/menu/back.png'), 'Close');
                    
drawmenurepaint;
            
                    
repeat
                    key
:=KeyToAction(GetKeyClicked);
                    if 
key=GA_DOWN then begin CursorDownDrawMenuRepaintDelay(100); end;
                    if 
key=GA_UP then begin CursorUpDrawMenuRepaintDelay(100); end;
                    
until (key=GA_FIRE); delay(100);
                    
                    
sel := menu32.selected;
                    
                        if 
sel 0 then begin
                            jpeg
.saveImage(im100copy(open,0,length(open)-4) + '_edit.jpg');
                            
clearform;
                            
showAlert('Done!''Image saved!'loadimage('/sav.gif'), ALERT_INFO);
                            
delay(3000);
                        
end;
                        if 
sel 1 then begin
                                
if resize false then drawimage(im,0,0);
                                if 
resize true then drawimage(canvas.resize_image(imgetwidthtrunc(getwidth/coefw)),0,0);
                                
menu32.init;
                                
menu32.CreateCursor(130244278190250);
                                
menu32.SetMenuWindow(00getwidthgetheight);
                                
menu32.MenuFonts(01);
                                
menu32.additem(LoadImage('/menu/0.png'), 'Обесцвечивание');
                                
menu32.additem(LoadImage('/menu/1.png'), 'Негатив');
                                
menu32.additem(LoadImage('/menu/2.png'), 'Затемнение');
                                
menu32.additem(LoadImage('/menu/3.png'), 'Осветление');
                                
menu32.additem(LoadImage('/menu/4.png'), 'Сепия');
                                
menu32.additem(LoadImage('/menu/5.png'), 'Сглаживание');
                                
menu32.additem(LoadImage('/menu/6.png'), 'Искажение');
                                
menu32.additem(LoadImage('/menu/7.png'), 'Черно-белый');
                                
menu32.additem(LoadImage('/menu/back.png'), 'Назад в редактор');
                                
menu32.drawmenurepaint;

                                
repeat
                                key
:=KeyToAction(GetKeyClicked);
                                if 
key=GA_DOWN then begin CursorDownDrawMenuRepaintDelay(100); end;
                                if 
key=GA_UP then begin CursorUpDrawMenuRepaintDelay(100); end;
                                
until (key=GA_FIRE); delay(100);

                                    
sel := menu32.selected;
                                    if 
sel <> 8 then im := effects.effect(im,sel);
                        
end;
                        if 
sel 2 then break;
                        
                        

            
until false;
    
end;

initialization
end

(Offline)
 
Ответить с цитированием
Старый 18.03.2009, 21:21   #41
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

попробуй заменить GetKeyClicked на GetKeyPressed
(Offline)
 
Ответить с цитированием
Старый 20.03.2009, 13:41   #42
Doctor Drive
Нуждающийся
 
Аватар для Doctor Drive
 
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Ответ: Lib_menu32 - Графическое меню без головной боли

Нифига. Меню просто не появляется
Картинку показывает и все...
(Offline)
 
Ответить с цитированием
Старый 24.03.2009, 05:27   #43
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

Я пробовал. При отключении картинок в меню всё нормально показывает.
Может не так прописана одна из иконок меню? Проверь.
Нижний текст не так рисует? Исправь на
DrawString('5 - Menu'getwidth/2twgetheight-th); 
У тебя просто не в том порядке параметры стоят

И вообще как-то странно, что у тебя программа вообще работает.
У меня на строку
menu32.CreateCursor(130244278190250); 
ругается. Нужно делать так:
menu32.loadcursor(menu32.CreateCursor(130244278190250)); 
Может у тебя старая версия библиотеки? Скачай более свежую.
(Offline)
 
Ответить с цитированием
Старый 25.03.2009, 18:28   #44
Doctor Drive
Нуждающийся
 
Аватар для Doctor Drive
 
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Ответ: Lib_menu32 - Графическое меню без головной боли

Кароче забейте. Я в form это меню сделал

odd, хз. Вроде новая, ладно, спс...
А с тем что текст не так рисует, это я чтото конкретно глюкнул)))))))))))))
(Offline)
 
Ответить с цитированием
Старый 28.03.2009, 13:10   #45
cHeRsAnYa
ПроЭктировщик
 
Регистрация: 18.12.2007
Сообщений: 157
Написано 24 полезных сообщений
(для 27 пользователей)
Ответ: Lib_menu32 - Графическое меню без головной боли

Имеется такой баг: http://pic.ipicture.ru/uploads/090328/5C042QVVGr.jpg Конечно можно решить очисткой экрана перед каждой отрисовкой меню, но так не должно быть.
И вот: http://pic.ipicture.ru/uploads/090328/RgWT9HrUfi.jpg (обведено красным) - буквы "i" почти не видно. От шрифта не зависит.

Есть ещё вопрос - как сделать фон для меню? Функции такой не нашёлю
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графическое меню. GRAY_WOLF Наше Open Source Software 0 18.12.2009 17:33
графический планшет и 3D Max SKA_DIMKA 3D Моделирование 11 18.08.2009 13:28
Как программно узнать имя пункта меню который был выбран (Обычное/стандартные меню)? Richik Основной форум 5 25.05.2009 19:20
2д игровой графический чат Serg153 Основной форум 17 31.01.2009 21:35
Графическое меню в Midlet Pascal. Как? JIexa Основной форум 9 29.06.2008 09:37


Часовой пояс GMT +1, время: 20:56.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com