Тема: Меню32
Показать сообщение отдельно
Старый 19.08.2010, 11:33   #1
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Меню32

Помогите объединить
program Load;
Var
n,wi,hi:integer;
begin
wi
:=GetWidthhi:=GetHeight;
while ( 
getKeyClicked<> KE_NONE) do
delay(100);
repeat

n
:= n+1
DrawImage(LoadImage('/pidgin.png'), (GetWidth/2-64), (GetHeight/2-64));
//Фон
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
if 
n>99 then
begin
SetColor
(0,0,0);
FillRect(0,0,wi,hi);
end;

until false;
end
и менюшку
Uses    font32sensormenu32;

Var        
keyinteger;



Begin

    
// ------------------------ Установка шрифтов --------------------------------

    
font32.init(2); // Всего 2 шрифта

    
Font(0); LoadFont('Verdana_7'); // Основной шрифт

    
Font(1); LoadFont('Verdana_7b'); // Такой же шрифт, но утолщенный и белый (для выделенного пункта)

    

    // ------------------------ Установка меню --------------------------------

    
menu32.init// инициализация меню

    
LoadCursor(CreateCursor(GetWidth244278190250)); // Создаем курсор

    
SetMenuWindow(00GetWidthGetHeight); // Задаем окно, в котором будет отображаться меню

    
MenuFonts(01); // Основной и курсорный шрифты

    

    
AddItem2(LoadImage('/cube.png'), 'Старт''start'); // Добавляем элементы меню

    
AddItem2(LoadImage('/star.png'), 'Настройки''settings');

    
AddItem2(None'Помощь''help'); // Пример пункта где иконка не нужна

    
AddItem2(LoadImage('/spe2.png'), 'Звук включен''off');

    
AddItem2(LoadImage('/about.png'), 'Тут рассказывается об этой замечательной программе подробно''about');

    
AddItem2(LoadImage('/error.png'), 'Выхат''exit');

    

    
SetCursor(4); // Пример явного перемещения курсора на нужный пункт

    
ChangeString('Выход'5); // Пример переименования пункта меню

    

    // ------------------------ Подготовка сенсорного экрана --------------------------------

    
sensor.init;

    

    
// ------------------------ Основной цикл --------------------------------

    
DrawMenuRepaint;

    
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 3 then

                begin

                    
if SelectedItem 'Звук включен' then begin ChangeString('Звук выключен'3); ChangeImage(LoadImage('/spe1.png'), 3); end;

                    else 
begin ChangeString('Звук включен'3); ChangeImage(LoadImage('/spe2.png'), 3); end;

                    
DrawMenuRepaintDelay(100);

                
end;

                

                if 
Selected 5 then Halt// Если выбрали ВЫХОД - то выход

                
if SelectedItem 'Выход' then Halt// Можно и так проверять. Чтоб не ломать мозги: какой же там номер пункта?

                

            
end

        

        
if (pointer_state 1then // Если нажали на сенсорный экран

            
begin

                SensorClick
(pointer_pressed_xpointer_pressed_y); // Передаем координаты в меню

                
DrawMenuRepaint;

            
end;

        
Delay(2); Scroll;

    
until false
Сам все варианты пробовал не получается наверно опыта не хватает
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием