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, 09.01.2009 в 00:29.
|