Урок 39 - Панель быстрого запуска (часть 1/2)

   Начинаем создавать панельку быстрого запуска, в этом уроке мы сделаем движение (скрытие\показ).

   Панелька будет выполнять простые функции: прятаться за границу экрана и показывается, запускать приложения, добавление приложений будет осуществляться способом "Drag-and-drop". В этом уроке мы сделаем только движение панели.

Стартуем!!!

Стартуем


   Наша панель будет располагаться слева, у края монитора и иметь небольшие размеры. Кидаем на форму компонент Panel и для теста Label, у Panel свойство Align установим на alClient. Выдвижение будет происходить при первом клике на панель, а при повторном клике, панель спрячется обратно. Поэтому создаем глобальную переменную Showed: boolean;, благодаря ей мы будем знать в каком состоянии панель, затем кликаем 2 раза Panel и пишем код:
procedure TForm1.Panel1Click(Sender: TObject);
begin
  if Showed = false then // Если статут "Спрятана" 
  begin
    Label1.Caption:='<<< True <<<';
    Showed:= True;  // Делаем статус "Показана"
  end
  else // Иначе
  begin
    Label1.Caption:='>>> False >>>';
    Showed:= False; // Делаем статус "Спрятана"
  end;
end;
   Проверим:

Показана
Жмем первый раз
Спрятана
Жмем второй раз


   Теперь сделаем движение панели. Создаем глобальную переменную S: integer; , это для того чтобы панель не перемещалась вечно, а останавливалась, вытаскиваем таймер, интервал зададим 10 и в обработчике события пишем код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if S = 15 then // Если пройдённый путь равен 15
  begin
    Timer1.Enabled:= False; // Выключаемся
  end
  else  // Иначе
  begin
    S:= S+1; // Увеличиваем путь на 1
    Form1.Left:= Form1.Left - 10; // Двигаем панель
  end;
end;
   Это движение в одну сторону, для движения назад нам понадобится еще один таймер, кидаем его на форму, назначаем интервал 10 и в обработчике пишем код:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
  if S = 0 then // Если пройдённый путь равен 0
  begin
    Timer2.Enabled:= False; // Выключаемся
  end
  else  // Иначе
  begin
    S:= S-1; // Уменьшаем путь на 1
    Form1.Left:= Form1.Left + 10; // Двигаем панель
  end;
end;
   Теперь вместо присвоения текста Label1 на нужно запускать таймера, модифицируем обработчик OnClick Panel:
procedure TForm1.Panel1Click(Sender: TObject);
begin
  if Showed = false then // Если статут "Спрятана"
  begin
    Timer1.Enabled:= True; // Запускаем таймер показа
    Showed:= True; // Делаем статус "Показана"
  end
  else
  begin
    Timer2.Enabled:= True; // Запускаем таймер скрытия
    Showed:= False; // Делаем статус "Спрятана"
  end;
end;
   Вот и все, в следующем уроке мы поработаем над интерфейсом.

Удачи!
Встретимся в следующем уроке!




Добавил(а): Dev199 Дата: 2015-12-31


  1. V
    V a year ago
    :)
Отменить.