Форум visio.getbb.ru |
О форумах
Библиотека | Частые вопросы | Литература | Склад материалов Полезные ссылки | О сайте История Visio | Продукты Visio |
Для русскоязычных пользователей Visio. Начинающих и профессионалов. Где взять, как сделать, что купить и т.д. |
TreeView на листе бумагиТуманов Г.Е. Элемент TreeView, отображающий иерархическую структуру в виде дерева, уже давно стал привычным во многих приложениях. Чаще всего им пользуются для выбора нужной папки в "Проводнике", но как часто не хватает инструмента, чтобы отобразить то же самое на бумаге. Разделаться, наконец, с этой задачей позволит небольшое Visio приложение, о котором здесь говорится. Приложение состоит из рисунка-заготовки Visio и специального трафарета. Все свернуто в архив treeview.zip. Для установки нужно просто разархивировать файлы, рисунок D2.vsd положить в любое место, там где вы будете с ним работать, а трафарет Fold.vss лучше всего разместить в папке Solutions, там где лежат остальные трафареты Visio. Когда понадобится нарисовать структуру каталогов вашего компьютера (или фрагмент этой структуры), открываете рисунок D2.vsd и видите пустой лист и трафарет Fold. В меню Tools/Macros должна быть видна папочка ThisDocument, а в ней два макроса - ttt и Branch.
Несущественные папки можно удалить, размещение приходится поправлять в зависимости от длины имени отображаемой структуры. Изображение всех папок одинаковое. Если требуется отобразить структуру каталогов на другом компьютере, подключенном, например, к локальной сети, то нужно сначала через проводник подключить выбранный диск в качестве сетевого, а затем действовать уже описанным методом. Приложение не блещет оформлением, но делалось оно для себя, а мне этого оказалось достаточно. Если что-то понадобится усовершенствовать, то исходный код макросов открыт и доступен для доработки. Следует только помнить, что для доступа к каталогам компьютера используется объект FileSystemObject, поэтому к проекту должна быть подключена библиотечка Microsoft Scripting Runtime. Макрос ttt Создает экземпляр FileSystemObject, получает коллекцию дисков и сохраняет ее во временном массиве names. Затем, пользуясь мастер-шейпом Folder с трафарета Fold.vss, отображает на листе рисунка нужное число папок, смещая каждое следующее изображение на 10 мм (1/5.08 дюйма). Путь (для последующего доступа) сохраняется в пользовательском свойстве шейпа. Макрос Branch Вызывается через меню шейпа (это свойство отражено в мастер-шейпе). Через объект Selection вычисляет, какой шейп его вызвал, и сохраняет начальные координаты раскрывающейся ветви на 20 мм правее и 10 мм ниже вызывающего шейпа. Создает FileSystemObject и получает из него список подпапок указанной папки. Полный путь папки-родителя берется из пользовательского свойства вызывающего шейпа. Ветвь подпапок прорисовывается примерно так же, как и ветвь дисков в предыдущем макросе. Дополнительно первый шейп ветви соединяется универсальным коннектором с вызывающим шейпом. Вот, собственно, и весь несложный механизм. Если понадобится помощь при модернизации, пишите. Все исходные материалы можно взять для подробного рассмотрения в zip-архиве. |