Вопрос: какая максимальная длина кода в VB | Добавлено: 22.05.07 12:59 |
Автор вопроса: ![]() |
Private Sub Command1_Click()
примерно 2000 cтрок End Sub все работает добавляю код if then end if выдает ошибку Compile error: Procedure too large помогите что можно сделать. |
Ответы | Всего ответов: 21 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вечный Юзер! ICQ: uu@jabber.cz Вопросов: 120 Ответов: 3302 |
Профиль | Цитата | #1 | Добавлено: 22.05.07 13:20 |
Научиться правильно разносить всё по модулям, формам, процедурам и функциям. 2000 строк кода в рутине CommandButton_Click() говорит о явных проблемах с архитектурой. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 1 |
Профиль | Цитата | #3 | Добавлено: 22.05.07 13:54 |
Когда я перехожу по команде Call
Private Sub AnotherOne() то у меня в этом модуле пропадают все переменные End Sub |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 301746136 Вопросов: 28 Ответов: 549 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 22.05.07 14:29 |
передавай в процедуру переменные или объяви общими,
Private Sub AnotherOne(var as var,var2 as var) |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ICQ: 422640045 Вопросов: 12 Ответов: 144 |
Профиль | Цитата | #6 | Добавлено: 22.05.07 16:02 |
ого.. 2000 строк водной процедуре 0_о ... Как это?.. Создай модули, пообьявляй там глоб. переменные.. и всё будет пучком.. ![]() |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 408802757 Вопросов: 76 Ответов: 985 |
Web-сайт: Профиль | Цитата | #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 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 224 Ответов: 3777 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 23.05.07 00:08 |
фигасе... чё ж эта прога делает? Не картинки поворачивает наверное ![]() |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ICQ: 298826769 Вопросов: 53 Ответов: 1732 |
Профиль | Цитата | #10 | Добавлено: 23.05.07 08:49 |
Это, наверное, в помощь Бранду, ядро оси на VB |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #11 | Добавлено: 23.05.07 13:13 |
Ага, переписанный NotePad ![]() |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 46 Ответов: 848 |
Профиль | Цитата | #12 | Добавлено: 23.05.07 20:07 |
фигасе... чё ж эта прога делает? Не картинки поворачивает наверное
![]() Ну, это она тоже делает. ![]() |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #13 | Добавлено: 23.05.07 20:18 |
Почитайте, пожалуйста, про процедурно-ориентированное программирование, размер процедуры можно уменшить во много раз.
Делатьт переменные глобальными, конечно, не нужно. |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 46 Ответов: 848 |
Профиль | Цитата | #14 | Добавлено: 23.05.07 21:39 |
размер процедуры можно уменшить во много раз.
Ээээ... если избегать дублирования кода? Конструкции GoSub-Return - это оно? |
Номер ответа: 15 Автор ответа: ![]() ![]() Вопросов: 55 Ответов: 1008 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 23.05.07 22:34 |
мне вот интересно, как автор смог накодить 2000 строк кода на вб и так и не узнать, что такое разбиение на процедуры
я лично даже в одном модуле больше 600-700 строк за жизнь не помещал (правда она пока еще короткая, но все же) |
|