| Author |  Topic  |  | 
              
                | Kuzmich
 
                18 Posts | 
                    
                      |  Posted - 04/29/2005 :  17:47:51 
 |  
                      | Шейп построен на линии с кучей вкладок Geometry... Как из VB получить значения длины и угла, которые отображаются в строке состояния?
 |  | 
              
                | immortal
 
                Russia391 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
 
                Russia391 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
 
                Russia1198 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
 
                Russia391 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  |  |