Шаг 7.
Компоненты библиотеки RX.
Вкладка Controls. Компонент TСurrencyEdit

    На этом шаге мы рассмотрим компонент TСurrencyEdit

    Компонент TСurrencyEdit (наследник TEdit) служит для ввода и редактирования чисел и денежных сумм, позволяет дополнительно указать формат отображения числа и символы для обозначения вида валюты DisplayFormat, а также максимальное число символов после десятичной точки (при вводе данных) с помощью свойства DecimalPlaces. Свойство Value позволяет получить или установить численную величину отображаемого в компоненте значения.

    Рассмотрим свойства компонента TСurrencyEdit:

Таблица 1. Свойства компонента TСurrencyEdit
Свойство Описание
property DisplayFormat: string; Свойство задает формат отображения данных в компоненте TCurrencyEdit. (При получении компонентом фокуса ввода форматирование данных отменяется и ввод происходит как в обычную строку ввода TEdit, при потере фокуса ввода данные форматируются согласно заданному формату.)
property DecimalPlaces: Word; Свойство определяет максимально допустимое число десятичных знаков при вводе и изменении данных в строке редактирования компонента TCurrencyEdit. Используется, когда строка имеет фокус ввода. При отображении значения в несфокусированной строке редактирования свойство не используется - применяется маска, заданная свойством DisplayFormat.
property Value: Extended; Свойство позволяет установить (или получить) численную величину значения, отображаемого в строке ввода. В случае пустой строки возвращается значение 0.
property BeepOnError: Boolean; Если значение этого свойства установлено в True (по умолчанию False), то при ошибках ввода с клавиатуры (недопустимых символов и т.д.) раздается звуковой сигнал.
property CheckOnExit: Boolean; Свойство определяет, будет ли проверяться правильность допустимого диапазона числа в компонентах TRxCalcEdit, TCurrencyEdit при потере фокуса строкой редактирования. CheckOnExit = True – в случае ввода недопустимого значения происходит исключение.
property Alignment: TParaAlignment; Определяет выравнивание текста в строке редактирования:
  • taLeftJustify – текст выровнен по левому краю;
  • taRightJustify - текст выровнен по правому краю;
  • taCenter - текст выровнен по центру.

    Например, изменяя свойство DisplayFormat так чтобы количество знаков после запятой равнялось четырем, получим (рис.1):


Рис.1. Компонент TСurrencyEdit с измененным форматом отображения данных

    Приведем пример: создадим приложение, которое продемонстрирует работу компонента TСurrencyEdit.

    Поместим на форму компоненты СurrencyEdit1, ComboEdit1, RxLabel1, RxLabel2, RxLabel3, RxSpeedButton1 и RxSwitch1 (рис.2).


Рис.2. Форма с размещенными на ней компонентами СurrencyEdit1, ComboEdit1, RxLabel1, RxLabel2, RxLabel3, RxSpeedButton1 и RxSwitch1

    TRxLabel1.Caption=' Формат отображения данных'.

    TRxLabel2.Caption='Выравнивание текста'.

    TRxLabel3.Caption=' Прямой ввод данных в строку'.

    При нажатии на кнопку строки редактирования ComboEdit1 будет происходить смена формата изображения в строке редактирования RxCalcEdit1. Свойству Text компонента ComboEdit1 придадим значение 0.00р.

    Для компонента RxSwitch1:

RxSwitch1.TextPosition=tpBellow;

RxSwitch1.StateOn=False;

RxSwitch1. Caption=' запрещён ';

    Для компонента СurrencyEdit1:

С>urrencyEdit1.BeepOnError:=True;

СurrencyEdit1.Alignment:=paRightJustify;

СurrencyEdit1.CheckOnExit:=True;

    Для компонента RxSwitch1 напишем обработчик события On:

procedure TForm1.RxSwitch1On(Sender: TObject);
begin
    RxSwitch1.Caption:='разрешен';
    RxCalcEdit1.DirectInput:=True;
end;

    Для компонента RxSwitch1 напишем обработчик события Off:

procedure TForm1.RxSwitch1Off(Sender: TObject);
begin
    RxSwitch1.Caption:='запрещен';
    RxCalcEdit1.DirectInput:=False;          
end;

    Для компонента ComboEdit1 напишем обработчик события OnButtonClick:

procedure TForm1.ComboEdit1ButtonClick(Sender: TObject);
begin
    RxCalcEdit1.DisplayFormat:=ComboEdit1.Text;      
end;

    Для компонента RxSpeedButton1 напишем обработчик события OnClick:

procedure TForm1.RxSpeedButton1Click(Sender: TObject);
begin
   if  RxSpeedButton1.Caption='taRightJustify'  then
     begin
       RxSpeedButton1.Caption:='taLeftJustify';
       CurrencyEdit1.Alignment:=taLeftJustify;
     end
    else
      if RxSpeedButton1.Caption='taLeftJustify'  then
        begin
         RxSpeedButton1.Caption:='taCenter';
         CurrencyEdit1.Alignment:=taCenter;
        end
       else
         begin
          RxSpeedButton1.Caption:='taRightJustify';
          CurrencyEdit1.Alignment:=taRightJustify;
         end;
end;

    Работа программы показана на рис.3(а-г).


Рис.3а. Прямой ввод данных в строку редактирования компонента СurrencyEdit1 запрещён


Рис.3б. Изменение формата отображения данных


Рис.3в. Прямой ввод данных в строку редактирования компонента СurrencyEdit1 разрешен


Рис.3г. Изменено выравнивание текста в строке редактирования компонента СurrencyEdit1

    Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим компонент TTextListBox.




Предыдущий шаг Содержание Следующий шаг