•  

ГлавнаяЛитература по DelphiРазработка приложений в системе Delphi → 7.1. Ввод и вывод данных. Общие сведения

Создано: 04.09.2010 4:54:41 · Исправлено: 04.09.2010 4:54:41 · Прочтений: 5254

Для ввода данных можно использовать:

  • • реализующие диалоги функции InputBox и InputQuery;
  • редакторы Edit, LabeledEdit, MaskEdit, Memo;
  • компоненты для ввода целых чисел UpDown, SpinEdit;
  • компоненты для работы со списками строк ListBox, ComboBox;
  • компоненты-таблицы StringGrid;
  • переключатели CheckBox, RadioGroup, RadioButton;

Данные можно вводить с клавиатуры, загружать из файла, формировать программно (случайным образом или по определённым правилам). При вводе с клавиатуры необходимо учитывать, что многие компоненты, предназначенные для ввода данных, работают со строками. Поэтому при вводе чисел необходимо использовать функции для перевода строки в число.

Обязательное требование: к обработке данных приступать только после корректного ввода.

Основная проблема – контроль вводимых данных. Наиболее общее решение – это использование имеющихся в Delphi средств обработки исключительных ситуаций, то есть формирование защищённого блока и обработка возникающих исключений. Но этот универсальный подход не всегда удобен, так как предусматривает прерывание естественного хода обработки данных. В ряде случаев желательно контролировать данные непосредственно при вводе, то есть разрешать вводить только определённые символы.

При использовании нескольких полей ввода или больших объёмов данных необходимо так организовать их контроль, чтобы пользователю не пришлось полностью повторять ввод, если ошибка была сделана где-то в конце ввода.

Компоненты, обеспечивающие ввод данных (за исключением переключателей), прекрасно приспособлены для вывода информации. Кроме того, специально для отображения данных предназначены компоненты-таблицы StringGrid и компоненты для вывода строк Label и StaticText.

Для удаления текста в компонентах, предназначенных для ввода строк, можно воспользоваться методом Clear либо присвоить нужной строке пустое значение. Как правило, после очистки полей ввода следует передать фокус ввода компоненту, с которого начнётся ввод данных.

Edit1.Clear; //Очистка однострочного редактора
Memo1.Clear; //Очистка многострочного редактора
Memo2.Lines.Clear; //Очистка многострочного редактора
Edit2.Text:=''; //Очистка однострочного редактора
for i:=0 to n-1 do Memo3.Lines.Strings[i]:='';
//Очистка строк от 0 до n-1
for i:=0 to Memo4.Lines.Count-1 do Memo3.Lines[i]:='';
//Очистка строк от 0 до значения количества строк Memo4
Memo2.Lines[strtoint(Edit1.Text)]:='';
//Очистка строки, номер которой задан Edit1.Text

В следующих подразделах приводятся различные приёмы ввода и вывода данных, а также способы контроля корректности ввода чисел. Использование окон диалога рассмотрено в разделе 6. Логически законченные примеры организации ввода/вывода приводятся после изложения теоретических сведений.