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

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

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

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 11.07.2008, 18:24   #1
KeipL
Нуждающийся
 
Аватар для KeipL
 
Регистрация: 07.07.2008
Адрес: Zp-UA
Сообщений: 58
Написано 4 полезных сообщений
(для 11 пользователей)
Вопрос Меню...

Доброго время суток, друзья.
Я являюсь хорошим кодером паскаля, но в МП новичек.
Я Использовал пример граф меню из исходников выложенных гдето на этом форуме. Естествено изменил(вроде бы улучшил))) ) и начал затачивать под свой проэкт.
НО в результате проверки рабочими оказались только 4 пункта меню !!
Я облазил этот несчасный кусочек кода, но в упор не вижу ограничения...
ткните носом плиз.
код:
Program Menu3;
Var	mc, wi, hh, hi, key, i,azs: integer;
		arrow: image;
		m: array [0..10] of string;
		img: array [0..10] of image;

Procedure MenuColor(n: integer);
begin
	if n=mc 	then begin SetFont(FONT_FACE_SYSTEM, FONT_STYLE_BOLD, FONT_SIZE_MEDIUM); SetColor(255,255,255); end
				else begin SetFont(FONT_FACE_SYSTEM, FONT_STYLE_PLAIN, FONT_SIZE_MEDIUM); SetColor(255,255,255); end;
end;

Procedure ShowMenu;
var	pt: integer;
begin
 azs:=20;
 wi:=GetWidth; hi:=GetHeight;
 m[0]:='Старт'; m[1]:='Поиск'; m[2]:='Помощь'; m[3]:='О программе'; m[4]:='Рекорды';  m[5]:='Выход';
 img[0]:=LoadImage('/search.png'); img[1]:=LoadImage('/search.png'); img[2]:=LoadImage('/help.png'); img[3]:=LoadImage('/about.png'); img[4]:=LoadImage('/search.png');  img[5]:=LoadImage('/quit.png');
 mc:=0;
 arrow:=LoadImage('/arrow.png');
	repeat
		pt:=hi/2-60;
		SetFont(FONT_FACE_SYSTEM, FONT_STYLE_PLAIN, FONT_SIZE_MEDIUM);
		SetColor(50,51,61); FillRect(0,0,wi,hi);
		SetColor(64,64,64); FillRect(0,mc*azs+pt,wi,azs);
		SetColor(30,64,129); hh:=GetStringHeight('W')/2;
		
		for i:=0 to 5 do begin	MenuColor(i); DrawText(m[i],32,15+azs*i-hh+pt); DrawImage(img[i],3,3+azs*i+pt);end;
		DrawImage(arrow, wi-20, mc*azs+pt+15);
		Repaint; Delay(20);
		key:=GetKeyClicked;
		if (key=50) or (key=-59) or (key=-1) then mc:=(mc+3) mod 4;
		if (key=56) or (key=-60) or (key=-2) or (key=-6) then mc:=(mc+1) mod 4;
		if (key=53) or (key=-26) or (key=-5) or (key=20) then
																					begin
																						//if mc=0 then Search;
																						//if mc=1 then Help;
																						//if mc=2 then About;
																						if mc=3 then break;
																					end;
	until false;
end;

Begin
	
	ShowMenu;
End.
(Offline)
 
Ответить с цитированием
Старый 11.07.2008, 19:14   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Меню...

Похоже, ограничение зарылось здесь:
key:=GetKeyClicked;
		if (key=50) or (key=-59) or (key=-1) then mc:=(mc+3) mod 4;//<<-------------
		if (key=56) or (key=-60) or (key=-2) or (key=-6) then mc:=(mc+1) mod 4;//<<-------------
		if (key=53) or (key=-26) or (key=-5) or (key=20) then
Вместо четверки должно стоять количество пунктов меню.
(Offline)
 
Ответить с цитированием
Старый 12.07.2008, 03:40   #3
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Меню...

...А вместо тройки в операторе mc:=(mc+3) mod 4; должно стоять количество пунктов на 1 меньше. ;-)
(Offline)
 
Ответить с цитированием
Старый 12.07.2008, 09:13   #4
KeipL
Нуждающийся
 
Аватар для KeipL
 
Регистрация: 07.07.2008
Адрес: Zp-UA
Сообщений: 58
Написано 4 полезных сообщений
(для 11 пользователей)
Ответ: Меню...

чесно говоря я принимал эту 4ку за составную часть навигиции((( оплошал

спс
(Offline)
 
Ответить с цитированием
Старый 12.07.2008, 13:20   #5
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Меню...

Сообщение от odd Посмотреть сообщение
...А вместо тройки в операторе mc:=(mc+3) mod 4; должно стоять количество пунктов на 1 меньше. ;-)
А у меня и без этого работает как надо.
(Offline)
 
Ответить с цитированием
Старый 13.07.2008, 03:25   #6
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Меню...

Ладно. Забейте. Скоро приступаю за создание библиотеки по отображению меню. Ещё, может, неделька и всё будет готово.
(Offline)
 
Ответить с цитированием
Старый 13.07.2008, 13:38   #7
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Меню...

А я как раз начал делать библиотеку для создания кнопок, чекбоксов и прочих подобных контролов.
(Offline)
 
Ответить с цитированием
Старый 14.07.2008, 08:04   #8
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Меню...

Сообщение от ViNT Посмотреть сообщение
А я как раз начал делать библиотеку для создания кнопок, чекбоксов и прочих подобных контролов.
Это хорошо, если что, я включусь и помогу и возможно в скором времени появится библиотека типа Lib_form32 или Lib_gui32 с поддержкой графических шрифтов, прозрачности и проч., я же пока работаю над библиотекой меню (меню-список, меню-список с иконками...).
(Offline)
 
Ответить с цитированием
Старый 14.07.2008, 10:35   #9
KeipL
Нуждающийся
 
Аватар для KeipL
 
Регистрация: 07.07.2008
Адрес: Zp-UA
Сообщений: 58
Написано 4 полезных сообщений
(для 11 пользователей)
Ответ: Меню...

удачно я темку создал )))
(Offline)
 
Ответить с цитированием
Старый 14.07.2008, 15:09   #10
Romanzes
Разработчик
 
Аватар для Romanzes
 
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений
(для 637 пользователей)
Ответ: Меню...

Так, глядишь, и Виста получится. Нужно еще Lib_directx10 сделать
(Offline)
 
Ответить с цитированием
Старый 15.07.2008, 14:27   #11
KeipL
Нуждающийся
 
Аватар для KeipL
 
Регистрация: 07.07.2008
Адрес: Zp-UA
Сообщений: 58
Написано 4 полезных сообщений
(для 11 пользователей)
Ответ: Меню...

угумс, я уже даже перемещениние "курсора" по горизонтал и сделал...
(Offline)
 
Ответить с цитированием
Старый 26.07.2008, 22:02   #12
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Меню...

А я прикольные окна почти сделал =)
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как программно узнать имя пункта меню который был выбран (Обычное/стандартные меню)? Richik Основной форум 5 25.05.2009 23:20
меню Pro_100_Den 3D-программирование 4 06.05.2009 10:38
Меню AndruXa Blitz3D 18 05.10.2007 21:44
Меню S2k Основной форум 1 31.08.2007 23:53


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


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