Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на Delphi. От новичка до профессионала! 20.2.3 Окна редактирования Edit, LabeledEdit и MaskEdit


Информационный Канал Subscribe.Ru


 20.2.3 Окна редактирования Edit, LabeledEdit и MaskEdit 

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

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

Свойство AutoSelect определяет, будет ли автоматически выделяться весь текст при передаче фокуса в окно редактирования. Его имеет смысл задавать равным true в случаях, когда при переключении в данное окно пользователь будет скорее заменять текущий текст, чем исправлять его. Имеются также свойства только времени выполнения SelLength, SelStart, SelText, определяющие соответственно длину выделенного текста, позицию перед первым символом выделенного текста и сам выделенный текст. Например, если в окне имеется текст «выделение текста» и в нем пользователь выделил слово «текста», то SelLength = 6, SelStart = 10 и SelText = «текста». Если выделенного текста нет, то свойство SelStart просто определяет текущее положение курсора. 

Окна редактирования можно использовать и просто как компоненты отображения текста. Для этого надо установить в false их свойство Readonly и целесообразно установить AutoSelect в false. В этом случае пользователь не сможет изменитьть отображаемый текст, и окно редактирования становится подобным меткам. Но имеются и определенные отличия. Во-первых, окна редактирования оформлены несколько иначе. А главное — окна редактирования могут вмещать текст, превышающий их длину. В этом случае пользователь может прокручивать этот текст, перемещая курсор в окне. Такими особенностями не обладает ни одна метка. 

При использовании окон редактирования для вывода, ввода и редактирования чисел необходимо использовать функции взаимного преобразования строк и чисел. Для вывода это описанные при рассмотрении меток функции FloatToStr и IntToStr. При вводе это функции StrToFloat — преобразование строки в значение с плавающей запятой, и StrToInt — преобразование строки в целое значение. Если вводимый текст не соответствует числу (например, содержит недопустимые символы), то функции преобразования генерируют исключение EConvertError. Поэтому в программе необходимо предусмотреть обработку этого исключения. Например:  

var  A:   integer;

………………….

Try

        …………

        А  :=  StrToInt(Edit1.Text);

...   // операторы,   использующие переменную А

 except

  on EConvertError do

  ShowMessage('Вы ввели ошибочное  число;   повторите  ввод');

  

Этот код обеспечивает сообщение пользователю об ошибке ввода и предотвращает ошибочные вычисления. Впрочем, это не лучший вариант предотвратить ошибочный ввод, поскольку пользователь узнает о своей ошибке только после того, как программа пытается использовать введенные данные. Лучше, если пользователь просто не сможет ввести неправильные символы. Можно программно обеспечить, чтобы в окне редактирования пользователь, например, мог вводить только цифры или наоборот — мог вводить символы и не мог вводить числа. Это рассмотрим в следующих уроках. Например, можно сделать на основе окна Edit свой собственный компонент, обладающий этими свойствами.

Продолжение следует.

Размещение рекламы: antonxp2004@hotmail.com на сайте или в рассылке в виде текста, более 3500 подписчиков.

 

www.hostingsystem.ru - качественный хостинг без простоев, хостинг для компаний, круглосуточная поддержка по телефону, e-mail, а также из личной панели управления пользователя, неограниченный трафик.

 

Сайт рассылки http://mydelphi7.narod.ru, на котором есть архив рассылки, также гостевая книга, переводчик.

Копировать, размещать, продавать представленную информацию запрещается.

 

Rambler's Top100



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное