5 Мб

Декабрь 2010

 


Сотворение совершенного Grid
Дорон Фарбер (Doron Farber)

Объединим элементы управления — таблицу grid, флажок checkbox и текстовое поле textbox, которое позволяет осуществить последовательный поиск, — чтобы создать по-настоящему полезное инструментальное средство.
В проекте, унаследованном мной от другого разработчика, мне потребовался способ, который позволил бы предоставить пользователю возможность искать записи в другой таблице или источнике данных. Элемент управления combobox в качестве решения этой задачи не годился, потому что количество записей, из которых надо было выбирать, составляло от 30 000 до 40 000. К тому же, я хотел обеспечить пользователю возможность последовательного поиска. Что мне требовалось, так это элемент управления grid с функцией поиска, который можно было бы «бросить» в модальную форму. В этом проекте насчитывалось 60 форм, нуждавшихся в такой возможности, как поиск, поэтому требовалось найти общее решение.
Для удовлетворения указанных потребностей на свет явился класс cntGrid, который я использовал в решении, названном мной «Ultimate Grid» (совершенный Grid).

VFPX: редактор PEM Editor
Рик Шуммер (Rick Schummer)

Редактор PEM Editor — это один из наиболее быстро развивающихся проектов на сайте VFPX, и потому он принадлежит к инструментам, о которых труднее всего писать в этой серии статей «с продолжением». Тем не менее, в этом месяце Рик пытается познакомить вас со всеми имеющимися наработками для редактора PEM Editor, показать кое-какие из его наиболее выдающихся возможностей, которые должны содействовать повышению продуктивности вашего труда, а также раскрыть тайну некоторой новой функциональности, разрабатываемой для четвертого релиза этого мощного инструмента.
Для некоторых из вас редактор PEM Editor, возможно, окажется новостью, но на самом деле он приближается уже к шестому выпуску. Его диалоговые окна опционально замещают встроенные диалоговые VFP-окна Edit Property/Method, предназначенные для редактирования свойств и методов, и, если вам так хочется, встроенные VFP-окна New Property (новое свойство) и New Method (новый метод). Вы могли бы спросить: «Вот те на, Рик, ведь ты уже рассказывал раньше о новых диалоговых окнах, которые заменяют встроенные?» Да, я рассматривал первое поколение редактора PEM Editor, но тогда он назывался «Edit Property/Method dialog» и изначально был написан Марсией Акинз (Marcia Akins). Марсиа заложила фундамент для этого нового инструмента. В 2008 году управление проектом и основную разработку взял на себя Джим Нельсон (Jim Nelson), вдохновившийся на то, чтобы поднять эту разработку на новый уровень.

Создание интерфейсов в стиле проводника Explorer средствами Visual FoxPro. Часть 1
Дуг Хенниг (Doug Hennig)

Пользовательские интерфейсы в стиле проводника Explorer входят в число наиболее популярных интерфейсов, используемых для современных приложений. Однако, работа с необходимыми для реализации такого интерфейса элементами управления и их объединение в одном решении может оказаться трудной задачей. В первой части этой серии из нескольких статей представлен набор классов и методик, позволяющих быстро справиться с разработкой интерфейсов в стиле проводника для ваших приложений. Интерфейс в стиле проводника обеспечивает отображение в левой части экрана списка элементов, а в правой — свойств выбранного элемента. Такой интерфейсный стиль давно уже пользуется популярностью и был использован во многих приложениях, вроде Windows Explorer и Outlook. Этот интерфейс не обязательно окажется идеальным вариантом для всех типов приложений, но он успешно работает в том случае, если у вас имеется иерархическая структура данных, такая, как хранящиеся в папках файлы, сделанные покупателями заказы или список контактных лиц в разных организациях.
У типичного интерфейса в стиле проводника есть несколько стандартных компонентов:

  • Список Listbox или таблица Grid, элемент управления TreeView — это наилучший вариант, поскольку он по природе своей обеспечивает иерархическое представление данных.

  • Набор элементов управления для демонстрации атрибутов (properties) выбранного предмета (item). Один из способов, которыми я пользовался для решения этой задачи раньше, предусматривал создание по одному контейнерному классу с необходимыми элементами управления для каждого типа отображаемых на экране предметов; далее экземпляры объектов этих контейнеров «складывались», один на другой, в правой части формы, и размещенный в методе Refresh этих контейнеров программный код использовался для того, чтобы скрыть (hide) или показать (show) определенный контейнер в зависимости от того, какого типа предмет был выбран в данный момент. Хотя на этапе выполнения все это выглядит прекрасно, на стадии проектирования такое решение весьма неприятно. Сейчас я предпочитаю использовать страничный блок pageframe, свойство которого Tabs имеет значение .F., в результате чего этот блок играет роль простого контейнера, а на каждой его вкладке размещен экземпляр объекта одного из контейнерных классов. Далее все сводится к следующему: если в «дереве» TreeView выбран какой-то предмет, свойству ActivePage страничного блока pageframe присваивается соответствующее значение, чтобы на экране был показан нужный контейнер.

  • Элемент управления splitter, разделяющий список предметов и панель атрибутов. С помощью этого разделителя, перетаскивая его влево или вправо, пользователь может менять относительные размеры области списка и панели атрибутов.

  • Элемент управления «status bar». Как правило, в этом элементе управления выдается информация о выбранном предмете, например, его наименование, а также сведения о состоянии формы, например, «Processing...» («Обработка…»), если форма выполняет какое-то действие.

Давайте разберемся, как создать интерфейс в стиле проводника.


Возврат на основную страницу

К архивам

© Edel Ltd. Все права защищены. 2010 г.

Hosted by uCoz