пятница, 29 апреля 2011 г.

Delphi: Секретная комбинация клавиш или "Пасхальное яйцо" - Часть 2

  В предыдущей статье секретная комбинация клавиш или "Пасхольное яйцо"  я описывал как можно управлять компонентами с помощью секретной комбинации клавиш, и для примера использовал запуск отладочного режима при котором отображается дополнительный функционал. Продолжая цикл заметок в этом направлении я попытаюсь описать как можно задать некие отладочные (настроечные) параметры при старте программы. Параметры будут задаваться следующего вида Project.exe -deb.  Для запуска программы отдельно можно создать ярлык с уже заданными параметрами запуска. И так, приступим.
Откроем к примеру предыдущий проект, или создадим новый. В разделе var добавим переменную DEBUGON, которой по умолчанию присвоем значение false
var
  Form1: TForm1;
  DEBUGON:Boolean = false;

   Следующим шагом будет написание процедуры, которая делает перебор всех входных параметров и устанавливает соответствующие значения (процедуру пишем у разделе implementation):

procedure StartInit; // добавляем для глобальной видимости
var
  Form1: TForm1;
  DEBUGON:Boolean = false;

implementation
{$R *.dfm}

procedure StartInit;
  const
    SDebugOn = '-deb';
  var
    I: Integer;
begin
  for I := 0 to ParamCount do
    if ParamStr(I) = SDebugOn  then
      DEBUGON:=true;
end;
  Проверяем в цыклом от 0 до количества параметров все входные параметры.  Кстати первый параметр с индексом 0 будет путь к программе, и ее названием. Если у нас параметр совпадает с константой SDebugOn, то есть имеет значение -deb - тогда переменная DEBUGON = true.
  Дальше нам нужно вызвать данную процедуру при запуске проекта и перед созданием форм. Для этого нужно в главном меню выбрать Project - View Source. В результате откроется исходный код проекта. Вставим вызов нашей процедуры после инициализации и перед созданием форм. У меня код выглядит следующим образом:
program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  StartInit;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
   Двигаемся дальше. Переходим на форму и создаем обработчик события на onCreate (два раза кликаем на пустое поле напротив названия onCreate в Object Inspector - Events) и пишем следующий код:
    Panel1.Visible:= DEBUGON;

  Если у нас переменная установлена, тогда задействуем некие параметры, в данном случае делаем видимой или нет Panel1 в зависимости от параметра DEBUGON.
  Практически все, теперь можно протестировать наше приложение на работоспособность запустив его с параметром -deb и без него. Для запуска программы с параметром можно воспользоваться средствами Delphi, для этого нужно зайти в Run-Parameters и написать в поле Parameters наше отладочное -deb. Пожалуй все, теперь можно опять протестировать и увидеть результат.

Комментариев нет: