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

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

procedure OnLoad(ninteger);
begin
wi
:=GetWidthhi:=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
:=GetWidthhi:=GetHeight;
    
// ------------------------ Установка шрифтов --------------------------------
    
font32.init(2); // Всего 2 шрифта
    
Font(0); LoadFont('Arial_7'); // Основной шрифт
    
Font(1); LoadFont('Arial_7'); // Такой же шрифт, но утолщенный и белый (для выделенного пункта)
    
    // ------------------------ Установка меню --------------------------------
    
menu32.init// инициализация меню
    
LoadCursor(CreateCursor(GetWidth206000255255)); // Создаем курсор
    
SetMenuWindow(00GetWidthGetHeight); // Задаем окно, в котором будет отображаться меню
    
MenuFonts(01); // Основной и курсорный шрифты
    
    
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 CursorDownDrawMenuRepaintDelay(100); end// Вниз
        
if key=GA_UP then begin CursorUpDrawMenuRepaintDelay(100); end// Вверх
        
if (key=GA_FIRE) or (SensorState 1then // Нажали огонь джойстика или двойной клик по сенсорному экрану
            
begin
                
                
if Selected 1 then
                begin
                    
                end
;
                
                if 
Selected 3 then Halt// Если выбрали ВЫХОД - то выход
            
                
            
end;
        
Delay(2); Scroll;
    
until false;
End
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
psih1 (20.08.2010)