|
10.03.2009, 21:18
|
#31
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Конечно не показывает. Ты же сначала сохраняешь курсор, а потом делаешь menu32.init, который все переменные стирает и ставит дефолтные(по умолчанию) значения. Просто переставь оператор menu32.createcursor(200, 20, 255255000); так, чтоб он был после menu32.init.
|
(Offline)
|
|
16.03.2009, 21:54
|
#32
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
а как цвет курсора ставится? думал RRRGGGBBB где R,G,B - (0..255)
Но оказывается не так...
|
(Offline)
|
|
16.03.2009, 22:14
|
#33
|
Разработчик
Регистрация: 16.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, 23:20
|
#34
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
ага, но что за ARGB? в гугле ниче не нашел...
а терь проблема - после нажатия на "огонь" меню не появляеццо...
unit Edit; interface procedure open; implementation uses FileSystem, imloadjsr75, font32, menu32, effects, canvas, jpeg; procedure open; var open: string; im: image; coefw: real; tw, th, sel, key: integer; resize: boolean; 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(im, getwidth, trunc(getwidth/coefw)),0,0); setcolor(0,0,0); fillrect(0, getheight-th, getwidth, th); font32.Font(1); DrawString('5 - Menu', getheight-th, getwidth/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(im, getwidth, trunc(getwidth/coefw)),0,0); menu32.init; menu32.CreateCursor(130, 24, 4278190250); menu32.SetMenuWindow(0, 0, getwidth, getheight); menu32.MenuFonts(0, 1); menu32.additem(loadimage('/menu/saveas.png'), 'Save as...'); menu32.additem(loadimage('/menu/effects.png'), 'Effects'); menu32.additem(loadimage('/menu/back.png'), 'Close'); drawmenu; repaint; repeat key:=KeyToAction(GetKeyClicked); if key=GA_DOWN then begin CursorDown; DrawMenu; Repaint; Delay(100); end; if key=GA_UP then begin CursorUp; DrawMenu; Repaint; Delay(100); end; until (key=GA_FIRE); delay(100);
Последний раз редактировалось Doctor Drive, 16.03.2009 в 23:51.
|
(Offline)
|
|
16.03.2009, 23:39
|
#35
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
createCursor уже возвращает image, нет необходимости в loadimage.
ARGB - A - это прозрачность курсора.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
17.03.2009, 00:19
|
#36
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Сообщение от pilgrim
createCursor уже возвращает image, нет необходимости в loadimage.
|
А я и не делал loadimage для курсора.
-------------------------------------
А что на щет того что меню не показывается?!
|
(Offline)
|
|
17.03.2009, 00:43
|
#37
|
Разработчик
Регистрация: 16.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)
|
|
17.03.2009, 01:04
|
#38
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Я знаю как меню делается. И делал. А вотут в проге оно не появляется
|
(Offline)
|
|
17.03.2009, 18:39
|
#39
|
Разработчик
Регистрация: 16.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений (для 93 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Сообщение от Doctor Drive
Я знаю как меню делается. И делал. А вотут в проге оно не появляется
|
Выложи исходник. Возможно кто нибудь и поможет.
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
|
(Offline)
|
|
17.03.2009, 20:36
|
#40
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Нету смысла выкладывать целый исходник. Вот разве что целый юнит выложу (напишу сюда). Место проблемы возле коментариев (тоесть часть кода, где должно появится меню и то, где текст не там рисует) Вот:
unit Edit; interface procedure open; implementation uses FileSystem, imloadjsr75, font32, menu32, effects, canvas, jpeg; procedure open; var open: string; im: image; coefw: real; tw, th, sel, key: integer; resize: boolean; 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(im, getwidth, trunc(getwidth/coefw)),0,0); setcolor(0,0,0); fillrect(0, getheight-th, getwidth, th); font32.Font(1); //ВОТ ТУТ ТЕКСТ НЕ ТАМ РИСУЕТ: DrawString('5 - Menu', getheight-th, getwidth/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(im, getwidth, trunc(getwidth/coefw)),0,0); menu32.init; menu32.CreateCursor(130, 24, 4278190250); menu32.SetMenuWindow(0, 0, getwidth, getheight); menu32.MenuFonts(0, 1); menu32.additem(loadimage('/menu/saveas.png'), 'Save as...'); menu32.additem(loadimage('/menu/effects.png'), 'Effects'); menu32.additem(loadimage('/menu/back.png'), 'Close'); drawmenu; repaint; repeat key:=KeyToAction(GetKeyClicked); if key=GA_DOWN then begin CursorDown; DrawMenu; Repaint; Delay(100); end; if key=GA_UP then begin CursorUp; DrawMenu; Repaint; Delay(100); end; until (key=GA_FIRE); delay(100); sel := menu32.selected; if sel = 0 then begin jpeg.saveImage(im, 100, copy(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(im, getwidth, trunc(getwidth/coefw)),0,0); menu32.init; menu32.CreateCursor(130, 24, 4278190250); menu32.SetMenuWindow(0, 0, getwidth, getheight); menu32.MenuFonts(0, 1); 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.drawmenu; repaint; repeat key:=KeyToAction(GetKeyClicked); if key=GA_DOWN then begin CursorDown; DrawMenu; Repaint; Delay(100); end; if key=GA_UP then begin CursorUp; DrawMenu; Repaint; Delay(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)
|
|
19.03.2009, 00:21
|
#41
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
попробуй заменить GetKeyClicked на GetKeyPressed
|
(Offline)
|
|
20.03.2009, 16:41
|
#42
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Нифига. Меню просто не появляется
Картинку показывает и все...
|
(Offline)
|
|
24.03.2009, 08:27
|
#43
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Я пробовал. При отключении картинок в меню всё нормально показывает.
Может не так прописана одна из иконок меню? Проверь.
Нижний текст не так рисует? Исправь на
DrawString('5 - Menu', getwidth/2- tw, getheight-th);
У тебя просто не в том порядке параметры стоят
И вообще как-то странно, что у тебя программа вообще работает.
У меня на строку
menu32.CreateCursor(130, 24, 4278190250);
ругается. Нужно делать так:
menu32.loadcursor(menu32.CreateCursor(130, 24, 4278190250));
Может у тебя старая версия библиотеки? Скачай более свежую.
|
(Offline)
|
|
25.03.2009, 21:28
|
#44
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: Lib_menu32 - Графическое меню без головной боли
Кароче забейте. Я в form это меню сделал
odd, хз. Вроде новая, ладно, спс...
А с тем что текст не так рисует, это я чтото конкретно глюкнул)))))))))))))
|
(Offline)
|
|
28.03.2009, 16:10
|
#45
|
ПроЭктировщик
Регистрация: 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)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:24.
|