Author |
Topic |
|
Kuzmich
18 Posts |
Posted - 04/29/2005 : 17:47:51
|
Шейп построен на линии с кучей вкладок Geometry... Как из VB получить значения длины и угла, которые отображаются в строке состояния? |
|
immortal
Russia
391 Posts |
Posted - 04/29/2005 : 18:07:28
|
длинна линии (если одна линия) то Width, угол Angle
.cells("Width").resultstr(0) .cells("Angle").resultstr(0)
если у вас начало и конец линии не совпадают с Begin и End тогда длинна = =SQRT((X конца-X начала)^2+(Y конца-Y начала)^2) угол = =ATAN2(Y конца-Y начала,X конца-X начала)
если у вас геометрия 2 то угол будет относительно угла шейпа или первой геометрии =ATAN2(Geometry2.Y2-Geometry2.Y1,Geometry2.X2-Geometry2.X1) однако поэксперементируйте и поймёте
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
Edited by - immortal on 05/02/2005 12:47:46 |
|
|
Kuzmich
18 Posts |
Posted - 04/29/2005 : 23:05:58
|
У шейпа вроде нет таких методов... А CellsSRC хочет три параметра... |
Edited by - Kuzmich on 04/29/2005 23:47:02 |
|
|
immortal
Russia
391 Posts |
Posted - 04/30/2005 : 11:59:10
|
quote: А CellsSRC хочет три параметра...
три параметра это: номер (VBимя) секции, номер(VBимя) строки в нутри секции и Номер(VBимя) ячейки в строке
но можно обращаться прямо по имени например cells("Width") cells("EndX") cells("Prop.Row_1") cells("BeginY")
далее .resultstr(0) - получаем результат вычисления в ячейке .formulaU - получаем саму формулу которая стоит в ячейке
quote: У шейпа вроде нет таких методов...
каких методов не понял? смотрите шейп лист там длинна линии (если одна линия) то Width, угол Angle
если используется линии не относительно width, то рекомендую прямо в шейпе сделать вычисления добавив секцию пользователя User. и туда написать все необходимые формулы, а потом брать от туда, в прочем можно вычисления делать и через басик, но помните что угол расчитан будет относительно угла шейпа поэтому надо будет прибавить ещё и Angle
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
Edited by - immortal on 05/02/2005 12:48:28 |
|
|
Kuzmich
18 Posts |
Posted - 04/30/2005 : 12:59:52
|
quote: каких методов не понял? смотрите шейп лист там длинна линии (если одна линия) то Width, угол Angle
Имею ввиду метод CellSRC... Есть только CellsSRC, который переваривать это не хочет... Пишу так: UserForm3.Label1.Caption = myob.CellSRC("Width").ResultStr(0) UserForm3.Label2.Caption = myob.CellSRC("Angle").ResultStr(0) |
|
|
Tumanov
Russia
1198 Posts |
Posted - 04/30/2005 : 15:04:48
|
Если три параметра, то CellSRC, а если по имени, то Cells. Немного разные методы :)
|
|
|
Kuzmich
18 Posts |
Posted - 04/30/2005 : 17:03:29
|
quote: Если три параметра, то CellSRC, а если по имени, то Cells. Немного разные методы :)
Когда три как раз CellsSRC, по крайней мере у меня именно так получается... Property CellsSRC(Section As Integer, Row As Integer, Column As Integer) As Cell А вот CellSRC я вообще не вижу нигде, ни в хелпе, ни в Object Browser... Property Cells(localeSpecificCellName As String) As Cell Видимо имелось ввиду это, так все сработало... |
Edited by - Kuzmich on 04/30/2005 17:04:37 |
|
|
immortal
Russia
391 Posts |
Posted - 05/02/2005 : 12:47:00
|
quote: Originally posted by Tumanov
Если три параметра, то CellSRC, а если по имени, то Cells. Немного разные методы :)
точно, перепутал, всё исправил как правильно, при имени используем Cells , а не CellSRC
в вашем случае будет
UserForm3.Label1.Caption = myob.Cells("Width").ResultStr(0)
UserForm3.Label2.Caption = myob.Cells("Angle").ResultStr(0)
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
Edited by - immortal on 05/02/2005 12:51:29 |
|
|
|
Topic |
|