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

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

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

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

Ответ
 
Опции темы
Старый 08.01.2009, 21:22   #1
ЯМАКc
AnyKey`щик
 
Регистрация: 28.09.2008
Сообщений: 14
Написано 2 полезных сообщений
(для 2 пользователей)
как сделать ссылку назад?

как мне сделат ссылку назад т.е обратно в меню вот код:


Program MenuDemo;
Uses	menu32, vscroll, font32;
Var		key: integer;
Color, i, x, y, wi, hi, len, y_max, red, green, text_height, blue, color_mode: integer;
clicked, select: command;

Procedure ch;
begin

	SetColor(255, 255, 255); FillRect(0, 0, wi, hi);
Loadvscroll(LoadImage('/vscroll.png')); // Загрузка скина для скроллера
	SetVScroll(wi - VScrollWidth, 0, hi); // Установка положения и длины скроллера
	vscroll.SetOffset(16); // Отступ (чтоб не закрыть ползунком стрелочки)
 
	TextWindow(0, 0, wi - VScrollWidth, hi); // Установка текстового окна (на весь экран за вычетом ширины скроллера)
	
	text_height:=Format('"Э  е забудь оставить ключенные тобой за остаток месяца. Прощай, дорогой мой. Молись за меня - если ты когда-нибудь молишься"', 0);

	DrawTextWindow; DrawVScroll(0, text_height, 0, hi); Repaint;
	
	SetColor(255,255,255);
	
	repeat // Главный цикл программы
		
		key:=KeyToAction(GetKeyPressed);
		if key = GA_DOWN then
			begin
				MoveDown(2); // Сдвигаем текст вниз
				FillRect(0,0,wi,hi); // Очистка фона
				DrawTextWindow; // Рисуем текст
				DrawVScroll(0, text_height, GetPosition, hi); // Отрисовка скроллера
		end;
				if key = GA_LEFT then
			begin
				MoveUp(10); // Сдвигаем текст вверх
				FillRect(0,0,wi,hi); // Очистка фона
				DrawTextWindow; // Рисуем текст
				DrawVScroll(0, text_height, GetPosition, hi); // Отрисовка скроллера
		end;
		
		if key = GA_UP then
			begin
				MoveUp(2); // Сдвигаем текст вверх
				FillRect(0,0,wi,hi); // Очистка фона
				DrawTextWindow; // Рисуем текст
				DrawVScroll(0, text_height, GetPosition, hi);  // Отрисовка скроллера
			end;
					if key = GA_RIGHT then
			begin
				MoveDown(10); // Сдвигаем текст вверх
				FillRect(0,0,wi,hi); // Очистка фона
				DrawTextWindow; // Рисуем текст
				DrawVScroll(0, text_height, GetPosition, hi);  // Отрисовка скроллера
			end;
			
		if key = GA_GAMED then menu; // Выход
                                              //а вот тут както надо сделать назад, типа при нажатии на какую нит клавишу
		
		Repaint; Delay(5); // Всё таки для Verdanы 7 медленновато скролирует. Надо ещё улучшать алгоритм.

	until false; // Если выбрали ВЫХОД - то выход
	end;



Begin
	SetFont(FONT_FACE_PROPORTIONAL, FONT_STYLE_BOLD, FONT_SIZE_LARGE);
	wi:=GetWidth; hi:=GetHeight;
		for i:=0 to 255 do
		begin
			SetColor (255-i, 255-i, 255-i);
			DrawText('PHP', (wi-GetStringWidth('PHP'))/2, (hi-GetStringHeight('PHP')*3)/2-4);
			DrawText('книга', (wi-GetStringWidth('книга'))/2, (hi-GetStringHeight('книга')*2)/2-2);
			DrawText('', (wi-GetStringWidth(''))/2, (hi-GetStringHeight(''))/2);
			DrawText('ЯМАК', (wi-GetStringWidth('ЯМАК'))/2, (hi-GetStringHeight('ЯМАК')/3)/2+4);
			Repaint; Delay(10); i:=i+1;
			
		end;
Delay (2000);
	SetColor(255, 255, 255);
  FillRect(0, 0, wi, hi);
	// ------------------------ Установка шрифтов --------------------------------
	font32.init(2); // Всего 2 шрифта
	Font(0); LoadFont('Verdana_7'); // Основной шрифт
	Font(1); LoadFont('Verdana_7b'); // Такой же шрифт, но утолщенный и белый (для выделенного пункта)
	
	// ------------------------ Установка меню --------------------------------
	menu32.init;
	LoadCursor('/cursor.png'); // Загрузка курсора для меню
	SetMenuWindow(0, 0, wi, hi); // Задаем окно, в котором будет отображаться меню
	MenuFonts(0, 1); // Основной и курсорный шрифты
	
	AddItem('/cube.png', 'читать'); // Добавляем элементы меню
	AddItem('/star.png', 'Настройки');
	AddItem('none', 'Помощь'); // Пример пункта где иконка не нужна
	AddItem('/about.png', 'О программе');
	AddItem('/error.png', 'Выход');
	
	// ------------------------ Основной цикл --------------------------------
	DrawMenu; Repaint;
	repeat
		key:=KeyToAction(GetKeyPressed); Delay(50);
		if key=GA_DOWN then begin CursorDown; DrawMenu; Repaint; Delay(100); end; // Вниз
		if key=GA_UP then begin CursorUp; DrawMenu; Repaint; Delay(100); end; // Вверх
		if key=GA_FIRE then // Нажали огонь
			begin
				if Selected = 0 then ch;

				if SelectedItem = 'Выход' then Halt; // 
			end
	until false;

End.

Последний раз редактировалось ЯМАКc, 08.01.2009 в 21:29.
(Offline)
 
Ответить с цитированием
Старый 08.01.2009, 22:00   #2
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: как сделать ссылку назад?

Выход из безконечного цикла длается так:
if key GA_GAMED then break; // Выход 
Строчку вызова книги тоже смени на
if Selected 0 then begin chDrawMenuRepaintDelay(100); end
PS: Впредь если в Вашем проекте используются шрифты, курсоры, скины окон и проч., то выкладывайте проект ЦЕЛИКОМ в виде zip файла, а то много времени уходит на выяснение почему программа зависает из-за нехватки какого-либо файла в проекте.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
midlet_pascal (26.01.2012), ЯМАКc (08.01.2009)
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать Kren Основной форум 22 08.04.2009 05:02
Как сделать? vadim2 2D-программирование 11 10.01.2008 13:56
Народ дайте ссылку на полный b3d_dx9 Total-Com Blitz3D 13 06.12.2007 17:22
Как сделать? mobilla Основной форум 4 05.10.2007 15:15
Как сделать?? _maxim_ 3D-программирование 12 18.11.2006 15:05


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


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