Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: какая максимальная длина кода в VB Добавлено: 22.05.07 12:59  

Автор вопроса:  Dima
Private Sub Command1_Click()

примерно 2000 cтрок

End Sub

все работает

добавляю код
     if then
     end if
выдает ошибку
Compile error:
Procedure too large

помогите что можно сделать.

Ответить

  Ответы Всего ответов: 21  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #1 Добавлено: 22.05.07 13:20
Научиться правильно разносить всё по модулям, формам, процедурам и функциям. 2000 строк кода в рутине CommandButton_Click() говорит о явных проблемах с архитектурой.

Ответить

Номер ответа: 2
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #2 Добавлено: 22.05.07 13:25
Разбей на две.

Private Sub Command1_Click()

примерно 1000 cтрок

Call AnotherOne

End Sub

Private Sub AnotherOne()

еще примерно 1000 cтрок

End Sub

Ответить

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



Вопросов: 0
Ответов: 1
 Профиль | | #3 Добавлено: 22.05.07 13:54
Когда я перехожу по команде Call
Private Sub AnotherOne()

то у меня в этом модуле пропадают все переменные

End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Arvitaly



ICQ: 301746136 

Вопросов: 28
Ответов: 549
 Web-сайт: okazani.ru
 Профиль | | #4
Добавлено: 22.05.07 14:29
передавай в процедуру переменные или объяви общими,

Private Sub AnotherOne(var as var,var2 as var)

Ответить

Номер ответа: 5
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #5 Добавлено: 22.05.07 14:35
то у меня в этом модуле пропадают все переменные

В начале формы ппоставь Option Explicit
И определяй переменные, которые в обоих процедурах требуются, как глобальные
Option Explicit
Private lngH As Long

Private Sub Command1_Click()
        'примерно 1000 cтрок
         lngH = 10
         Call AnotherOne
End Sub

Private Sub AnotherOne()
        MsgBox lngH
        'еще примерно 1000 cтрок
End Sub

Ответить

Номер ответа: 6
Автор ответа:
 Silver Ferrum



ICQ: 422640045 

Вопросов: 12
Ответов: 144
 Профиль | | #6 Добавлено: 22.05.07 16:02
ого.. 2000 строк водной процедуре 0_о ... Как это?.. Создай модули, пообьявляй там глоб. переменные.. и всё будет пучком.. :)

Ответить

Номер ответа: 7
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #7
Добавлено: 22.05.07 17:10
А напиши пожалуста первых 10 строк кода.А вобще если ты хочеш делать 2000 при какомто условие. Тогда делай так.If условие=true then command1_click

Ответить

Номер ответа: 8
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #8 Добавлено: 22.05.07 23:50
Да, предельный размер процедуры в VB - всего лишь 64 кб. Так что разбивать надо. Насчёт модуля проблем не возникало - у моей (всё ещё находящейся в разработке) проги главный модуль из 53686 строк и весом в 1.94 Мб компилируется хоть и долго, но всё же компилируется. :)

Ответить

Номер ответа: 9
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #9
Добавлено: 23.05.07 00:08
фигасе... чё ж эта прога делает? Не картинки поворачивает наверное :)

Ответить

Номер ответа: 10
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #10 Добавлено: 23.05.07 08:49
Это, наверное, в помощь Бранду, ядро оси на VB

Ответить

Номер ответа: 11
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #11 Добавлено: 23.05.07 13:13
Ага, переписанный NotePad :)

Ответить

Номер ответа: 12
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #12 Добавлено: 23.05.07 20:07
фигасе... чё ж эта прога делает? Не картинки поворачивает наверное :)

Ну, это она тоже делает. =) Если на клаве чит TILTTILTTILT набрать. Хотя предназначена для другой цели. Прога LEBuild называется. Фич там всяких выше крыши. Третий год её пишу (правда с перерывами). За оффтоп извиняюсь, если хочешь, у меня на lezsite.narod.ru последний релиз скачай. Это прикинь, такого монстра в одиночку сделать...

Ответить

Номер ответа: 13
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #13 Добавлено: 23.05.07 20:18
Почитайте, пожалуйста, про процедурно-ориентированное программирование, размер процедуры можно уменшить во много раз.

Делатьт переменные глобальными, конечно, не нужно.

Ответить

Номер ответа: 14
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #14 Добавлено: 23.05.07 21:39
размер процедуры можно уменшить во много раз.

Ээээ... если избегать дублирования кода? Конструкции GoSub-Return - это оно?

Ответить

Номер ответа: 15
Автор ответа:
 -АлександР-



Вопросов: 55
Ответов: 1008
 Web-сайт: sham.clan.su
 Профиль | | #15
Добавлено: 23.05.07 22:34
мне вот интересно, как автор смог накодить 2000 строк кода на вб и так и не узнать, что такое разбиение на процедуры

я лично даже в одном модуле больше 600-700 строк за жизнь не помещал (правда она пока еще короткая, но все же)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам