Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2016, 19:59   #1
Mad_Lord
Пользователь
 
Регистрация: 23.01.2016
Сообщений: 14
По умолчанию Разворачивающиеся меню

Здравствуйте! Я хотел сделать разворачивающиеся и сворачивающиеся меню при помощи таймера, однако возникли некоторые трудности с написанием кода. Вот что у меня получилось :
Код:
procedure TForm1.Menu_ActiveClick(Sender: TObject);
Var active:boolean;
begin
timer2.Enabled:=true;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
Var active :boolean;
    TimePoints:integer;
begin
//если активация требуется то развернуть меню
If active=true then Begin
                    TimePoints:=TimePoints+15;
                    If TimePoints=600 then Begin
                                           //если меню развернуто полностью, то остановить таймер и сменить активность
                                           timer2.Enabled:=false;
                                           active:=false;
                                           End;
                    If TimePoints<301 then begin //подвинуть 1 кнопку
                                           top5       .Left    :=top5        .Left     +15;
                                           top5_active.Left    :=top5_active.Left      +15;
                                           End;
                    //подвинуть 2 кнопку
                    exit          .left :=exit        .left  +15;
                    exit_active   .left :=exit_active .left  +15;
                    End;
//если меню уже развернуто и требуется свернуть
If active=false then Begin
                     TimePoints:=TimePoints-15;
                     If TimePoints=0 then Begin //если меню свернуто полностью...
                                          timer2.Enabled:=false;
                                          active:=true;
                                          End;
                     If TimePoints>0 then begin //свернуть 1 кнопку
                                          top5       .Left    :=top5        .Left      -15;
                                          top5_active.Left    :=top5_active .Left      -15;
                                          End;

                     // свернуть 2 кнопку
                     exit          .left :=exit        .left      -15;
                     exit_active   .left :=exit_active .left      -15;
                     End;

end;
Пожалуйста, помогите найти ошибку, Я вам буду весьма признателен за это.
Mad_Lord вне форума Ответить с цитированием
Старый 21.02.2016, 20:06   #2
kutani
Форумчанин
 
Регистрация: 23.01.2016
Сообщений: 608
По умолчанию

...переменная active всегда будет в false, она инициализируется локально в процедуре таймера. Сделайте ее глобально.
kutani вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меню codrops (стильное меню), Как сделать чтобы текст не смещался в блоке? AlienNation HTML и CSS 2 28.09.2011 13:17
И сново sendMessage =) Как нажать пункт верхнего меню и меню правой кнопки? TwiX Win Api 9 15.10.2009 01:57
jQuery: навигация по DOM, разворачивающиеся списки wall66 JavaScript, Ajax 1 01.07.2009 22:09
Разворачивающиеся меню. Как проще? Web-Gangsta JavaScript, Ajax 4 05.05.2009 17:46
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) chandrasecar Мультимедиа в Delphi 7 14.01.2009 09:20