Тема: Меню32
Показать сообщение отдельно
Старый 20.08.2010, 12:07   #5
Айнур
AnyKey`щик
 
Регистрация: 20.06.2010
Сообщений: 7
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Меню32

Вот приблизительно так.
Program MenuDemo;
Uses    font32,menu32;
Var        
key,n,wi,hi: integer;

procedure OnLoad(n: integer);
begin
wi
:=GetWidth; hi:=GetHeight;
while ( 
getKeyClicked<> KE_NONE) do
delay(100);
DrawImage(LoadImage('/logo.png'), (GetWidth/2-64), (GetHeight/2-64));
repeat
n
:= n+1; 

//Фон
SetColor(237,142,186);
FillRect(1,hi-7,wi-3,6);
//Полоса
SetColor(122,74,133);
FillRect(3,hi-5,(wi-5)*n/100,2);
//Рамка
DrawRect(1,hi-7,wi-3,5);
repaint;
until n>99;
SetColor(255,255,255);
FillRect(1,hi-7,wi,7);
repaint;
end;

Begin
  wi
:=GetWidth; hi:=GetHeight;
    
// ------------------------ Установка шрифтов --------------------------------
    
font32.init(2); // Всего 2 шрифта
    
Font(0); LoadFont('Arial_7'); // Основной шрифт
    
Font(1); LoadFont('Arial_7'); // Такой же шрифт, но утолщенный и белый (для выделенного пункта)
    
    // ------------------------ Установка меню --------------------------------
    
menu32.init; // инициализация меню
    
LoadCursor(CreateCursor(GetWidth, 20, 6000255255)); // Создаем курсор
    
SetMenuWindow(0, 0, GetWidth, GetHeight); // Задаем окно, в котором будет отображаться меню
    
MenuFonts(0, 1); // Основной и курсорный шрифты
    
    
AddItem2(LoadImage('/cube.png'), 'Старт теста', 'start'); // Добавляем элементы меню
    
AddItem2(LoadImage('/spe2.png'), 'Звук включен', 'off');
    
AddItem2(LoadImage('/about.png'), 'Информация', 'about');
    
AddItem2(LoadImage('/error.png'), 'Выхат', 'exit');
    
    
SetCursor(3); // Пример явного перемещения курсора на нужный пункт
    
ChangeString('Выход', 3); // Пример переименования пункта меню
    
    
    // ------------------------ Основной цикл --------------------------------
    
OnLoad(10);
    
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) or (SensorState = 1) then // Нажали огонь джойстика или двойной клик по сенсорному экрану
            
begin
                
                
if Selected = 1 then
                begin
                    
                end
;
                
                if 
Selected = 3 then Halt; // Если выбрали ВЫХОД - то выход
            
                
            
end;
        
Delay(2); Scroll;
    
until false;
End. 
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
psih1 (20.08.2010)