ЛИСТИНГ 19.7 Общедоступные и приватные объявления в форме RMA Input

private

{Приватные объявления}

RMANum : Integer; public

{Общедоступные объявления) RMAIndexStr : String; Editing : Boolean end;

Объявив переменные, следовало позаботиться о их своевременной инициализации, которая должна происходить каждый раз при запуске программы. Если переменные инициализировать при активизации формы, будут затерты установки, сделанные в форме RMA Management. Местом инициализации было бы логично выбрать обработчик OnCreate. Результат того, что получилось, представлен в Листинге 19.8.

ЛИСТИНГ 19.8 Обработчик OnCreate для формы RMA Input

procédure TAddRMAForm FormCreate(Sender TObject);
begin
RMANum := 0 ;
RMAIndexStr := '';
Editing := False;
end;

Отпив глоток кофе, я рассеяно потянулся за консервами. Банка случайно перевернулась. Поймать ее мне не удалось, она, кувыркаясь, взлетела вверх и, разбрызгивая остатки своего содержимого во всех возможных направлениях, шлепнулась на пол.

Что за невезенье! Это было последнее съестное в моей кварти..., в моем офисе. Я убедил себя, что в следующей главе обязательно пойду позавтракать, а сейчас нужно - ковать железо пока горячо. Нужно было создать минимальный механизм, проверяющий инициализацию и демонстрирующий - работают ли кнопки Добавить и Редактировать формы RMA Management. При выполнении щелчка на любой из кнопок должна устанавливаться переменная, управляющая режимом редактирования/добавления, и еще - значение текущего индекса в таблице RMA формы Management должно запоминаться для формы 1прш в строковой переменной. Единственное, что мне следовало сделать для проверки, это вызвать форму Input в модальном диалоге. Написанные мной обработчики OnClick распечатаны в Листинге 19.9.

ЛИСТИНГ 19.9 Обработчики события OnClick дпя кнопок

Добавить и Редактировать формы RMA Management

procédure TRMAMgmtForm AddBtnClick(Sender: TObject); begin {Сообщаем форме о добавлении в конец} AddRMAForm Editing := False; AddRMAForm RMAIndexStr :=

RMATable.FieldByName('RMA_ID').AsString; AddRMAForm.ShowModal;
end;

procédure TRMAMgmtForm.EditBtnClick(Sender: TObject); begin {Сообщаем форме о редактировании} AddRMAForm.Editing := True AddRMAForm.RMAIndexStr :=

RMATable.FieldByName('RMA_ID').AsString; AddRMAForm.ShowModal;
end;

И еще одна задача, которую следовало выполнить перед первой проверкой: нужна подпрограмма, вызываемая тогда, когда форма Input активизируется формой Management. Пока - я просто заменю заголовок в форме Input, в зависимости от того, будет ли происходить редактирование или добавление записей. Этот простой обработчик показан в Листинге 19.10.

ЛИСТИНГ 19.10 Простой обработчик события OnActive дпя формы RMA Input

procédure ТAddRMAForm.FormActivate(Sender: TObject); begin if Editing

then begin {Редактирование специфицированной записи} Caption := 'Редактировать запись RMA';

end

else begin {Добавление новой записи}

Caption := 'Добавить запись RMA';
end;
end;

Пример вновь откомпилирован и запущен на выполнение, только в этот раз из меню формы Main вызывается форма RMA Management. Кажется, что все работает. Когда я щелкаю на кнопку Добавить формы RMA Management, появляется форма Input и заголовок "Добавить запись RMA", когда я щелкаю на кнопку Редактировать, заголовок гласит - "Редактировать запись RMA". Это уже горячо!


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Ноябрь
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс