Страница: 1 | 
		
		 
			   
			 
			 Здравствуйте! Подскажите как программно добавить новую форму. Еще у меня такой вопрос, VBA, когда в приложении происходит большой перебор данных время затраченное на этот перебор сильно отличается от VB6? Сказал что-то, сам не понял! Вообщем дело так: В AutoCADe на чертеже куча примитивов я их все по одному перебираю, на проверку какого-либо свойства, VBA делает это за 2 сек, тот же код, но в VB6 делает это же самое за 2 мин. Наверное здесь можно провести аналогию с Exсel. 
			 
			 Новую форму добавить очень просто. Создаешь прототип который хочешь добавлять, а потом вот это Private Sub Command1_Click()  Set myform = New Form1 End Sub А нацчет перебора... Я тебе так скажу: За 2 минуты VB6 можрет сделать немеряно работы, и если простой перебор контролей занимает столько времени, то или ты что то делаешь неправильно или я чего то не понял...   MAGNUS, спасибо! Вот код, здесь происходит обыкновенный подсчет количества объектов: Sub Main()  On Error Resume Next For Each entry In acadDoc.ModelSpace End Sub Так вот из-за последнеего цикла программа работает 2 мин. Может это из-за связи VB с AutoCADом? Я этот exe-шник запускаю из Acada, мне его надо создавать только когда он не включен, а так чаще из него. Но все равно конечно попробовать стоит, ладно еще раз спасибо. Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Программное добавление формы                      
     
    
Добавлено: 10.09.02 23:33
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     sergeyz
 sergeyz
      
       
  
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 6
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Satrapp
 Satrapp








ICQ: 75556561 
Вопросов: 8
Ответов: 80
      
 Профиль |  | #1
       
Добавлено:  10.09.02 23:36
       
    
       
  
Может, это и примитивно, но Form.Load, Form. Show не хотят звать формочку?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: MAGNUS
 MAGNUS




Вопросов: 12
Ответов: 430
      
 Профиль |  | #2
       
Добавлено:  11.09.02 00:02
       
    
       
  
 
    
  im myform As Form
im myform As Form
 myform.Show
И все.

		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: sergeyz
 sergeyz








Вопросов: 3
Ответов: 7
      
 Профиль |  | #3
       
Добавлено:  11.09.02 16:35
       
    
       
  
 
    
Dim acadApp As AcadApplication
Dim acadDoc As AcadDocument
Dim butcl As Integer
butcl = 0
    'Подключение к приложению AutoCAD
    Set acadApp = GetObject _
                  (, "AutoCAD.Application")
    If Err Then
    Err.Clear
    butcl = MsgBox("AutoCAD не запущен, попытаться его запустить?", vbYesNo, "Ошибка запуска")
    If butcl = 6 Then
    Set acadApp = CreateObject _
                  ("AutoCAD.Application")
    If Err Then
            MsgBox "Ошибочка", vbCritical, "Ошибка запуска AutoCAD"
            Exit Sub
    End If
    Else
    Exit Sub
    End If
  End If
  
  Dim x As Integer
  
    'Открытие чертежа
acadApp.Visible = True
acadApp.WindowState = acMax
Set acadDoc = acadApp.ActiveDocument
x = x + 1
Next
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: MAGNUS
 MAGNUS




Вопросов: 12
Ответов: 430
      
 Профиль |  | #4
       
Добавлено:  11.09.02 17:10
       
    
       
  
Значит так. По поводу скорости. Сейчас у тебя АКАД создается внешним процессом, а это сильно замедляет доступ к нему. Попробуй вставить его в OLE на форме. и создать Embedded Object из файла. В этом случае ему не  нужно будет переходить границы процесса для доступа к обьектам и все должно работать гораздо быстрее. Попробуй! 
     
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: MAGNUS
 MAGNUS




Вопросов: 12
Ответов: 430
      
 Профиль |  | #5
       
Добавлено:  11.09.02 17:18
       
    
       
  
Значит так. По поводу скорости. Сейчас у тебя АКАД создается внешним процессом, а это сильно замедляет доступ к нему. Попробуй вставить его в OLE на форме. и создать Embedded Object из файла. В этом случае ему не  нужно будет переходить границы процесса для доступа к обьектам и все должно работать гораздо быстрее. Попробуй! 
     
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: sergeyz
 sergeyz








Вопросов: 3
Ответов: 7
      
 Профиль |  | #6
       
Добавлено:  12.09.02 00:57