четверг, 26 января 2012 г.

Урок 29. Ударим кликом по гриду

В разработке программы "Расходы" (ссылку на исходные тексты и готовый exe файл я опубликую несколько позже) на уроке 28 я остановился на том, что показал один из возможных способов ввода информации в базу данных посредством интерфейса пользователя.

Сегодня я остановлюсь на обработке событий мыши, возникающих в тот момент, когда пользователь делает одиночный или двойной клик на таблице, расположенной в главной форме приложения.

Я подозреваю, что нужно объяснить, для чего это нужно.

Предоставим пользователю одиночным кликом выбирать поле (колонку). Впоследствии этот выбор будет необходим, чтобы применить фильтр для отображения не всех записей выбранного мемориального ордера, а только тех записей, значение которых в данном поле совпадает с выбранным. Ну, например: для поиска ошибки ввода нам нужно посмотреть, сколько затрат в данном месяце отнесено на оплату коммунальных услуг. Подобные вопросы возникают довольно часто, если появляется сомнение: "Я внес эту сумму или нет?" или "Кажется, я уже вносил эту сумму..."

По двойному клику удобно вызвать процесс редактирования текущей записи (т.е. записи, по которой происходит двойной клик).

(рисунок можно увеличить).

Вряд ли стоит рассказывать или снимать видео о том, как задать обработчик того или иного события.

Я приведу здесь дописанный в модуле "main.pas" текст:

procedure TMainFrm.DBGridEh1CellClick(Column: TColumnEh);
begin

  // Клик по ячейке
  MySelect.MySel_Field:=DBGridEh1.Columns[DBGridEh1.SelectedIndex].FieldName;

end;

procedure TMainFrm.DBGridEh1DblClick(Sender: TObject);
begin

  // Двойной клик
  InsEdit;
end;

В первой процедуре в переменную типа "запись" MySelect.MySel_Field помещается значение поля выбранной мышкой колонки.

Вторая процедура вызывает процесс редактирования записи, описанный ранее.

Таким образом, собирая воедино фрагменты приводимого мною текста, Вы в итоге получите готовую полнофункциональную программу. Но, скажу честно, Вам придется набраться терпения, до финиша еще очень и очень далеко. Впереди у нас - отчетность (как текстовая, так и графическая) и многое другое.

А в следующий раз я планирую поговорить о поиске и фильтрации записей.



2 комментария:

  1. Анонимный27/1/12 13:10

    Добрый день, Александр.

    Ваши статьи, и особенно видеоуоки для меня, делающей первые шаги по программированию в среде Delphi7 очень помогают. Когда начинаешь что-то "воять", то не имеешь представления о возможностях Delphi7. Ваши знания дают последовательную информацию, которую можно использовать для создания курсового проекта в очень короткий срок.

    Хотелось бы еще получить информацию по получению даенных из интернет через Delphi7.

    Большое спасибо.
    Студентка очно-заочной формы обучения.

    ОтветитьУдалить
  2. Добрый день.
    Я буду рад помочь Вам, если Вы уточните вопрос (какие именно данные необходимо получать из интернет) и укажете, как с Вами связаться.

    ОтветитьУдалить