Шаг 4.
Компоненты библиотеки RX.
Вкладка Controls. Компонент TDirectoryEdit

    На этом шаге мы рассмотрим компонент TDirectoryEdit.

    Компонент TDirectoryEdit представляет собой строку редактирования для ввода имен каталогов файловой системы. Являясь наследником TComboEdit, компонент TDirectoryEdit имеет кнопку, нажатие на которую приводит к открытию модального диалога выбора каталога (используется функция SelectDirectory из модуля FileCtrl). Выбранное имя каталога заносится в строку редактирования, если пользователь нажмет кнопку ОK в диалоге выбора имени каталога. Вы имеете доступ к выбранному имени каталога как к свойству Text компонента TDirectoryEdit.

    Внешний вид компонента (рис.1):


Рис.1. Компонент TDirectoryEdit с открытым диалоговым окном

   

Рассмотрим свойства данного компонента :

Таблица 1. Свойства компонента TDirectoryEdit
Свойство Описание
property DirectInput: Boolean; Свойство отвечает за разрешение (или запрет) прямого ввода данных в строку редактирования компоненты TDirectoryEdit . DirectInput = False - прямой ввод данных в строку запрещен, и пользователь должен использовать кнопку для вызова диалога для внесения изменений в данные компонента.
property ButtonWidth: Integer; Ширину кнопки, являющейся составной частью TDirectoryEdit. Если это свойство имеет значение 0, то кнопка не показывается и событие OnButtonClick не вызывается (несмотря на значение свойства ClickKey).
property ClickKey: TShortCut; Свойство задает "горячую" клавишу или комбинацию клавиш для данного компонента, при нажатии которых будет автоматически открываться модальный диалог выбора каталога.

type

TDirDialogKind = (dkVCL, dkWin32);

Определяет вид модального диалога выбора имени файла:

  • dkVCL – отображается стандартное диалоговое окно для открытия каталога TOpenDialog;
  • dkWin32 - отображается диалоговое окно в виде окна “обзор папок”.
property DialogOptions: TSelectDirOpts; Позволяет задать режимы для диалога выбора имени каталога (в 32-битной версии при установке свойства DialogKind в значение dkWin32 значение свойства DialogOptions игнороируется).
property GlyphKind: TGlyphKind; Свойство позволяет указать, что кнопка имеет предопределенное изображение, задаваемое типом TGlyphKind:

  • gkCustom – цветная кнопка ;
  • gkDefault – черно-белая кнопка ;
  • gkDropDown - ;
  • gkEllipsis - ;

    Приведем пример: создадим приложение, которое позволит заполнять компонент TTextListBox, добавляя каждый раз в новую строку имя выбранного в компоненте TDirectoryEdit имени каталога (аналогично примеру для компонента TFilenameEdit).

    Поместим на форму TextListBox1, RxSpeedButton1 и RxSpeedButton2 (рис.2).


Рис.2. Форма с расположенными на ней компонентами TextListBox1, RxSpeedButton1 и RxSpeedButton2

    RxSpeedButton1 (“Добавить строку”) – это кнопка для добавления новой строки в список TextListBox.

    RxSpeedButton2 (“Очистить список”) – это кнопка для удаления записей из списка.

    Свойству DirectInput компоненты DirectoryEdit1 придадим значение False, чтобы запретить прямой ввод данных в строку. Для компонента TextListBox1:

TextListBox1.Items[0]:=' Выбор имени каталога:' – строка будет служить заголовком списка.

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

procedure TForm1.RxSpeedButton1Click(Sender: TObject);
begin
      TextListBox1.Items.Add(DirectoryEdit1.Text);//функция добавления строки
                                                  //  в список
end;

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

procedure TForm1.RxSpeedButton2Click(Sender: TObject);
begin
      TextListBox1.Clear;                                  
      DirectoryEdit1.Clear;                                  
      TextListBox1.Items.Add('     Выбор имени каталога:'); 
                                           // добавляем строку - заголовок
      Showmessage('Данные удалены!');  
end;

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


Рис.3а. Диалоговое окно компонента TDirectoryEdit


Рис.3б. Добавлена строка в список TextListBox1


Рис.3в. Добавлена вторая строка в список TextListBox1


Рис.3г. Очистка списка

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

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




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