Свойства и функции для работы с панелями
Под "панелями" понимаются следующие области: файловые панели (Shell
),
информационная панель (Info
), панель быстрого просмотра (QView
), панель дерева папок (Tree
).
Все плагиновые панели относятся к файловым (Shell
).
Логические свойства (тип: Boolean)
Файловые панели | |
---|---|
Свойство | Описание |
APanel.Root PPanel.Root | на панели корневая папка? |
APanel.Bof PPanel.Bof |
текущий элемент панели в начале списка? |
APanel.Eof PPanel.Eof |
текущий элемент панели в конце списка? |
APanel.Empty PPanel.Empty |
панель пуста? |
APanel.Selected PPanel.Selected |
на панели есть отмеченные файлы/папки? |
APanel.Folder PPanel.Folder |
текущий элемент панели - папка? |
APanel.LFN PPanel.LFN |
на панели "длинные имена файлов"? |
APanel.Filter PPanel.Filter |
на панели включён фильтр? |
APanel.Plugin PPanel.Plugin |
плагиновая панель? |
Все панели | |
Свойство | Описание |
APanel.FilePanel PPanel.FilePanel |
файловая панель? |
APanel.Left PPanel.Left |
панель слева? |
APanel.Visible PPanel.Visible |
панель видима? |
Замечания
Префикс APanel. относится к активной панели, PPanel. - к пассивной.
Свойства
Файловые панели | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Оператор | Тип | Описание | ||||||||||||||||||
APanel.ColumnCount PPanel.ColumnCount |
Number | количество колонок на панели | ||||||||||||||||||
APanel.ItemCount PPanel.ItemCount |
Number | содержит количество файловых объектов на панели | ||||||||||||||||||
APanel.CurPos PPanel.CurPos |
Number | содержит порядковый номер файлового объекта на панели | ||||||||||||||||||
APanel.SelCount PPanel.SelCount |
Number | содержит количество выделенных файлов на панели | ||||||||||||||||||
APanel.Current PPanel.Current |
String | содержит имя файла под курсором | ||||||||||||||||||
APanel.Path PPanel.Path |
String | содержит путь панели (без заключительного '\') | ||||||||||||||||||
APanel.UNCPath PPanel.UNCPath |
String | содержит UNC-путь панели (без заключительного '\'); для плагиновой панели - prefix:[hostfile/]path | ||||||||||||||||||
APanel.DriveType PPanel.DriveType |
Number | содержит тип привода на панели:
|
||||||||||||||||||
Файловые панели плагинов | ||||||||||||||||||||
Оператор | Тип | Описание | ||||||||||||||||||
APanel.Path0 PPanel.Path0 |
String | содержит путь на реальной файловой системе, до вызова плагинов, создающих свою панель (без заключительного '\') | ||||||||||||||||||
APanel.HostFile PPanel.HostFile |
String | содержит имя хост-файла панели плагина (или пусто) | ||||||||||||||||||
APanel.Prefix PPanel.Prefix |
String | содержит префикс плагина или пусто (или несколько префиксов, разделённых символом ':') | ||||||||||||||||||
APanel.Format PPanel.Format |
String | содержит имя формата панели плагина | ||||||||||||||||||
APanel.OPIFlags PPanel.OPIFlags |
Number | набор битовых флагов, характеризующих свойства плагиновой панели:
|
||||||||||||||||||
Все панели | ||||||||||||||||||||
Оператор | Тип | Описание | ||||||||||||||||||
APanel.Height PPanel.Height |
Number | содержит высоту панели | ||||||||||||||||||
APanel.Width PPanel.Width |
Number | содержит ширину панели | ||||||||||||||||||
APanel.Type PPanel.Type |
Number | содержит тип панели:
|
Замечания
Префикс APanel. относится к активной панели, PPanel. - к пассивной.
Функции
Функция | Описание | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
itemIdx=panel.fexist(panelType,S) | Проверяет существование файла/папки S из активной (panelType=0) или пассивной (panelType=1) панели. В параметре S допускается использование символов '*' и '?'. В этом случае функция проверяет только первое вхождение файла/папки. Функция возвращает 0, если такого объекта на панели нет, или индекс элемента. В отличие от fexist(), функция работает только с панелями. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
b=panel.fattr(panelType,S) | Возвращает файловые атрибуты файла/папки S из активной (panelType=0) или пассивной (panelType=1) панели.
Если файловый объект не существует, функция возвращает -1. В параметре S допускается использование символов масок '*' и '?'. В этом случае функция возвращает атрибуты для первого найденного файла/папки. В отличие от fattr(), функция работает только с панелями. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
V=panel.item(panelType,itemIdx,Property) | Возвращает различную информацию для элемента панели itemIdx из активной (panelType=0) или пассивной (panelType=1) панели. В зависимости от запрашиваемого Property функция возвращает следующие свойства элемента:
Для панели "Дерево папок" возвращается только имя файла (Property=0), остальные значения Property игнорируются. Для получения данных о текущем элементе (под курсором) itemIdx должен быть равен 0. Дата/время могут возвращаться в форматах:
Пример - выделить все файлы/папки новее текущего:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
E=panel.setpath(panelType,path[,filename]) | На активной (panelType=0) или пассивной (panelType=1) панели выставляет путь path и позиционирует курсор на элемент с именем filename (если указан). Возвращает 1 в случае успешной установки пути, и 0, если папка не существует. Например, на активной панели выставить папку "C:\WINDOWS", на пассивной - "C:\Program Files", активную панель сделать слева и установить курсор на папку "FAR":
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
itemIdx=panel.setpos(panelType,filename) | Позиционирует курсор на элемент с именем filename на активной (panelType=0) или пассивной (panelType=1) панели. Возвращает позицию (индекс) элемента или 0, если такого элемента на панели нет. Например, создать папку с именем, соответствующим текущей дате в формате
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
itemIdx=panel.setposidx(panelType,PosIdx[,InSelection]) | Позиционирует курсор на элемент с индексом itemIdx на активной (panelType=0) или пассивной (panelType=1) панели. Параметр PosIdx может принимать отрицательные значения, в этом случае элементы панели нумеруются от конца к началу. Если задать itemIdx=0, то перехода не происходит, просто возвращается текущая позиция. С помощью необязательного параметр InSelection можно осуществить позиционирование среди отмеченных элементов (для этого нужно указать InSelection=1). Функция возвращает позицию элемента или 0, если такого элемента на панели нет. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
N=panel.select(panelType,Action[,Mode[,Items]]) | Операции с выделением элементов на активной (panelType=0) или пассивной (panelType=1) панели. Action может быть одним из следующих значений:
Необязательный параметр Mode может принимать следующие значения:
Функция возвращает количество элементов, над которыми производилось Action. Примеры:
|
Замечания
- Панельные функции работают только с видимыми файловыми элементами, с учётом применённых фильтров на панели.
- Нумерация элементов начинается с 1.
Во время вызова макрофункций panel.setpos(), panel.setpath() и panel.setposidx() макросы замораживаются до момента выполнения этих функций.
На "больших" папках (например, сетевые, с большим количеством файловых объектов и/или медленных каналах) эти функции могут выводить сообщения о процессе сбора данных о файлах/папках, с возможностью отменить процесс по Esc.