Author |
Topic |
|
9rey
Russia
30 Posts |
Posted - 01/20/2012 : 15:39:50
|
объясните, пожалуйста смысл этого параметра в перечисленных выше функциях
например ф-я SectionExists(Section As Integer, fExistsLocally As Integer)
fExistsLocally - это что? я думал, что если false, то ищет везде, во всех вложенных шейпах, если true, то только в этом шейпе. но че-то не работает так.
кто в курсе? |
|
Tumanov
Russia
1198 Posts |
Posted - 01/21/2012 : 08:20:51
|
Во-первых, сам я этот параметр никогда не использовал, поэтому могу ошибаться :) Во-вторых, понимал его по-другому. В Visio используется механизм наследования атрибутов. (Причем наследование может быть не только от мастер-шейпов, но и от стилей и не только от них). Для каждого шейпа в документе хранятся только атрибуты, отличающиеся от унаследованных. Так, если мастер-шейп имеет секцию Shape Data и во всех копиях этого мастера на странице эта секция не изменялась, то в каждом шейпе данные этой секции не сохраняются, а при необходимости выбираются из мастера. (Это хорошо видно при сохранении документа в XML формате). А если в какой-то копии добавить еще одно пользовательское свойство, то для этого шейпа это будет уже локальное изменение. И оно будет храниться непосредственно в этом шейпе. Так вот, когда мы используем функцию SectionExists, то проверяемый шейп мы указываем однозначно. А параметр fExistsLocally говорит, в какой части искать - включая наследуемую от мастер-шейпа или только в принадлежащей исключительно шейпу на странице. Если fExistsLocally = True, то для утвердительного ответа нужно, чтобы мастер не имел нужной секции, а в копии такая секция была. То есть она не унаследована, а создана именно в этом шейпе. К сожалению, простенькая экспериментальная проверка, которую я сейчас провел, не подтвердила вышеизложенного. Почему - не знаю. Может все рассуждения не верны, а может просто не учел какой-то мелочи :( |
|
|
Obsidian
12 Posts |
Posted - 01/21/2012 : 15:42:53
|
Ну кстати, да - если бы назначение этого аргумента было таковым, то его тип был бы скорее всего Boolean...
Хотя, с другой стороны - в SDK примерно так и написано. |
Edited by - Obsidian on 01/21/2012 15:56:13 |
|
|
9rey
Russia
30 Posts |
Posted - 01/21/2012 : 16:18:18
|
Да, действительно, все именно так. секция, ряд или ячейка наследуются. проверил. создал мастер-шейп, создал в нем секцию custom prop. вписал значение в ячейку Value. дропнул его на лист. проверил этот шейп: CellExists("Prop.Row_1.Value", 0) = true CellExists("Prop.Row_1.Value", 1) = false поменял в дропнутом шейпе это значение на другое - обе проверки стали true. вот так вот. спасибо за подсказку |
|
|
|
Topic |
|
|
|