вторник, 20 марта 2012 г.

Урок 36. Продолжаем разговор...

Именно так любил приговаривать очаровательный мультяшный герой по имени Карслон, который живет на крыше...

Прежде, чем углубиться дальше в лес Delphi и не только,  я бы хотел оживить некоторые пункты меню проекта "Расходы".

Шаг 1. Пункт меню "О программе"


Когда-то, в уроке №13, я рассказал о том, как сделать компонент "О программе". Вам придется его немного подправить :-) и разместить на форме MainFrm, а затем назначить соответствующему пункту меню вот такой простой обработчик:


procedure TMainFrm.N_AboutClick(Sender: TObject);
begin
  PrDAboutBoxDlg1.Execute;
end;


Наделите компонент следующими свойствами:



Щаг 2. Никто не обратил внимания, что кнопка Cancel (PrDCancelButton1) на верхней панельке осталась без обработчика. Добавьте обработку действий, когда пользователь ничего не ввел в поля новой записи или передумал добавлять новую запись:


procedure TMainFrm.PrDCancelButton1Click(Sender: TObject);
begin


  // Отказ от редактирования
  ADOTableMain.Cancel;
  DBGridEh1.Enabled:=True;                                   // Переключение грида в режим доступности
  Panel3.Visible:=False;                                            // Скрытие верней панели


end;

Шаг 3. Новый Action Data_Insert, обрабатывающий процесс добавления новой записи, необходимо добавить в список ActionList и подложить его под соответствующие пункты главного меню и PopupMenu:


Обработчик события выполнения экшена:


procedure TMainFrm.Data_InsertExecute(Sender: TObject);
begin


  // Новая запись
  ADOTableMain.Insert;


end;



Внимание! Не забыть вернуться к процедуре:

procedure TMainFrm.Data_SelectMOExecute(Sender: TObject);    // Соответствует N_EditClick
begin
...
  //   Сделать доступным именно Action, а пункты меню станут доступными автоматически
  Data_Insert.Enabled:=True;


Шаг 4. Выбор базы данных

Добавьте Action в категорию Service


Создайте обработчик Action:




procedure TMainFrm.Service_Select_DiskExecute(Sender: TObject);
begin


  // Выбор диска с базой данных
  SetDisk;
  MainConnecting;
  TableActive(True);


  // Инфо на статусбаре
  StatusBarUpdate;


end;

Установите соответствие пункта меню и нового действия.
Данный пункт меню позволит Вам выбрать для просмотра и работы другую базу данных (например, по прошествии года, после архивации базы данных, сохранения ее в другом каталоге).

На этом пока все.
В следующем уроке я предполагаю показать как "перевести" интерфейс программы на другой язык.



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

Отправить комментарий