Программа для тестовых проверок знаний — страница 4

  • Просмотров 3879
  • Скачиваний 488
  • Размер файла 18
    Кб

Пусть, например, вы хотите, чтобы при нажатии пользователем клавиши с символом «С» или «с» в любой момент работы с приложением выполнялись операции, предусмотренные в обработчике события OnClick кнопки Button1. Поскольку неизвестно, какой компонент будет находиться в фокусе в момент этого события, надо перехватить его на уровне формы. Такой перехват осуществляется, если установить свойство формы KeyPreview в true. Тогда в обработчике

события формы OnKeyPress можно написать оператор if (key='C' or key='c') then Button1.Click; Если пользователь ввел символ «С» или «с», то в результате будет выполнен обработчик щелчка кнопки Button1. 2.2 Опции окна редактирования В компоненте Edit вводимый и выводимый текст содержится в свойстве Text. Это свойство можно устанавливать в процессе проектирования или задавать программно. Выравнивание текста, как это имело место в метках и панелях, невозможно.

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

них предусмотрены типичные комбинации «горячих» клавиш: Ctrl-C — копирование выделенного текста в буфер обмена Clipboard (команда Copy), Ctrl-X — вырезание выделенного текста в буфер Clipboard (команда Cut), Ctrl-V — вставка текста из буфера Clipboard в позицию курсора (команда Paste), Ctrl-Z — отмена последней команды редактирования. Edit можно использовать и просто как компоненты отображения текста. Для этого надо установить в true его свойство ReadOnly и

целесообразно установить AutoSelect в false. В этом случае пользователь не сможет изменять отображаемый текст, и окно редактирования становится подобным меткам. При использовании окон редактирования для вывода, ввода и редактирования чисел необходимо использовать функции взаимного преобразования строк и чисел. Для вывода это описанные при рассмотрении меток функции FloatToStr и IntToStr. При вводе это функции StrToFloat — преобразование строки

в значение с плавающей запятой, и StrToInt — преобразование строки в целое значение. Если вводимый текст не соответствует числу (например, содержит недопустимые символы), то функции преобразования генерируют исключение EConvertError. Этот код обеспечивает сообщение пользователю об ошибке ввода и предотвращает ошибочные вычисления. Впрочем, это не лучший вариант предотвратить ошибочный ввод, поскольку пользователь узнает о своей