16. Окно списка

Еще одним элементом интерфейса DataExpress является окно списка. Оно открывается при нажатии на кнопку объекта. Представлено классом TListWindow.

Рис 15

Доступ к компонентам можно получить через следующие свойства:

  • ToolBar – панель инструментов,
  • FormView – компонент представления формы,
  • Buttons – панель кнопок.

Управление окном списка объекта

Для управления окном списка объекта надо подключиться к событию объекта OnCreateListWindow.

Пример:

procedure ListWindowCreate(Sender: TObject; aWindow: TForm);
var
  LWnd: TListWindow;
begin
  LWnd := TListWindow(aWindow);
  LWnd.FormView.Form.EditWindow.OnShow := @EditWindowShow;
  LWnd.Caption := '…';
end;
 
procedure Form_Create;
begin
  dxLookupComboBox1.OnCreateListWindow := @ListWindowCreate;
end;

Создание и уничтожение окна списка

Окно списка вполне может существовать самостоятельно без привязки к полю типа «объект». Для этого нужен конструктор Create:

constructor Create(const FormName: String; ViewType: TViewType);

Параметры:

  • FormName – имя формы. Не допускается указывать дочерние формы.
  • ViewType – представление формы:
    • vtGridTop – таблица сверху,
    • vtGridBottom – таблица внизу,
    • vtGridLeft – таблица слева,
    • vtGridRight – таблица справа,
    • vtGridOnly – только таблица,
    • vtWithoutGrid – только формы,
    • vtSimpleForm – простая форма,
    • vtDefault – представление по умолчанию, заданное в дизайнере.

Пример:

ListWnd := TListWindow.Create('Клиенты', vtGridLeft); 
ListWnd.FormView.Form.Open;  // Разработчик должен самостоятельно открывать набор данных
ListWnd.ShowModal;
ListWnd.Form.Close; // … и закрывать (необязательно, если окно уничтожается)
ListWnd.Free;       // Уничтожение окна списка