Режимы набора данных (окончание)

   
На этом шаге мы рассмотрим организацию контроля за воодом данных.

   
Вернемся к программе предыдущего шага. Допустим, необходимо предусмотреть запрет ввода отрицательного числа.
Для этого можно написать такой обработчик события OnKeyPress для компонента DBEdit2 (компонент,
с которым мы связали поле Kolvo).

procedure TForm1.DBEdit2KeyPress(Sender: TObject; var Key: Char);
begin
  if not(key in ['0'..'9',#8]) then key:=chr(0);
end;

   
Событие OnKeyPress наступает, когда пользователь нажимает клавишу. Если была нажата клавиша, отличная
от цифры, или Backspace, то мы отменяем ввод символа.

   
Для написания качественного приложения, необходимо просчитывать такие ситуации.

   
В заключение, дополним созданное приложение двумя процедурами. Опишите две процедуры EnabledVisual и
DisabledVsual.

procedure EnabledVisual;
begin
    Form1.DBLookupComboBox1.Enabled:=True;
    Form1.DBEdit1.Enabled:=True;
    Form1.DBEdit2.Enabled:=True;
    Form1.DBEdit3.Enabled:=True;
end;
procedure DisabledVisual;
begin
    Form1.DBLookupComboBox1.Enabled:=False;
    Form1.DBEdit1.Enabled:=False;
    Form1.DBEdit2.Enabled:=False;
    Form1.DBEdit3.Enabled:=False;
end;

   
Измените обработчик события OnClick компонентов TButton таким образом, что при выполнении условия,
кроме вызова того или другого метода для Table2, вызывалась бы процедура:

  • для InsertButton и EditButton - EnabledVisual;
  • для PostButton и CancelButton - DisabledVisual.

   
Например:

procedure TForm1.InsertButtonClick(Sender: TObject);
begin
  if Table2.State = dsBrowse then
  begin
    Table2.Insert;
    EnabledVisual;
  end;
end;

   
Свойству Enabled компонентов TDBEdit и TDBLookupComboBox придайте значение False.

   
Запустите программу. Когда НД находится в режиме dsBrowse, визуальные компоненты для работы с полями
недоступны, но если мы нажмем кнопку Добавить или Изменить, то вызывается
процедура EnabledVisual, и компоненты становятся доступными.


Рис.1. Внешний вид приложения

   
Созданное приложение можно взять здесь.

   
На следующем шаге мы рассмотрим формирование набора данных из нескольких таблиц.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

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