Author |
Topic |
|
Евгений
88 Posts |
Posted - 01/17/2005 : 12:41:56
|
Добрый день, уважаемые мастера Вижио! У меня к вам два вопроса.
Как наложить ограничения на длину проперти? Для одной надо ограничение - только 3 символа, для другой - 4 или 5.
Второй вопрос. Одна из пропертей шейпа должна зависеть от проперти другого шейпа, а точнее - если шейп лежит на другом шейпе, то должна копировать величину этой проперти себе, а если не лежит ни на одном другом шейпе, должна копировать себе величину проперти листа/страницы. Как это реализовать? Через RUNADDON? Но как конкретно, если так? |
|
Евгений
88 Posts |
Posted - 01/17/2005 : 13:19:27
|
Да, и еще надо некоторые проперти сделать нередактируемыми. То есть, чтобы они были видны, но изменить их было нельзя. |
|
|
Евгений
88 Posts |
Posted - 01/17/2005 : 17:50:23
|
И еще вопрос попроще. Как перехватить событие изменения проперти? Например для определенного шейпа, чтобы при изменении какой-то custom property вызывалась соответствующая процедура? |
|
|
Tumanov
Russia
1198 Posts |
Posted - 01/17/2005 : 21:04:28
|
1. Ограничение наложить нельзя, но после ввода можно проверить длину и отрезать лишнее или заблокировать изменение. Для этого надо обрабатывать что-то типа CellChanged, FormulaChanged или ShapeChanged скорее всего для объекта Page. Например, страница объявляется как Dim WithEvents pg As Visio.Page при открытии документа pg ассоциируется с нужной страницей, после чего Вас будут уведомлять о соответствующих событиях.
2. В том же обработчике можно разбираться и с порядком следования шейпов.
3. Запретить редактирование можно используя =GUARD("Замучаешься редактировать"). Видимость редактирования есть, а значение остается прежним.
4. См. п. 1. WithEvents |
|
|
Digitall
Russia
389 Posts |
Posted - 01/17/2005 : 23:11:23
|
quote: Originally posted by Евгений
Да, и еще надо некоторые проперти сделать нередактируемыми. То есть, чтобы они были видны, но изменить их было нельзя.
Сделать фиксированный список из 1-й строки. |
|
|
Евгений
88 Posts |
Posted - 01/20/2005 : 11:08:53
|
Г-н Туманов, спасибо :) Не ожидал, что для слежения изменений в шейпе надо следить за изменениями страницы.
Digitall, :D |
|
|
Евгений
88 Posts |
Posted - 01/20/2005 : 11:18:13
|
Насчет =GUARD() сразу появилась проблема. Делаю =GUARD() для custom property, и когда стараюсь изменить значение проперти в окошке, хотя в ShapeSheet значение не меняется, зато видимое значение становится тем, на которое я его поменял. А мне хотелось бы, чтобы видимое значение также оставалось неизмененным. (Желательно, чтобы вообще на инпуте этой проперти невозможно было установить фокус) |
|
|
Евгений
88 Posts |
Posted - 01/20/2005 : 11:26:51
|
Как ни странно, пока сделал так, как предложил г-н Digitall :). Хотя разворачивающийся одноэлементовый список при нередактируемом значении выглядит немного странно, все же исполняет свою функцию. Если не будет лучшего решения, я даже готов так оставить. Но все же, может, можно? |
|
|
|
Topic |
|
|
|