|
|
|
Compile error: procedure too large-как с ним бороться?
|
|||
|---|---|---|---|
|
#18+
Я делаю Электронный словарь кроссвордиста. Т. е. при вводе вопроса и кол-ва букв в textBox и последующем нажатии на кнопку Спросить в listBox выводятся ответы. Вот мой код: 'cmdGo-кнопка "Спросить" 'txtanswer-поле для ввода вопроса 'txtcross-поле для ввода кол-ва букв 'lstcross-лист вывода ответов Private Sub cmdGO_Click() If txtANSWER.Text = "Абразивный материал" Then If txtCROSS.Text = "5" Then lstCROSS.AddItem "Алмаз-самый крепкий" lstCROSS.AddItem "Кварц" lstCROSS.AddItem "Пемза" ElseIf txtCROSS.Text = "6" Then lstCROSS.AddItem "Гранат" lstCROSS.AddItem "Корунд" lstCROSS.AddItem "Наждак" ElseIf txtCROSS.Text = "7" Then lstCROSS.AddItem "Боразон-искуственный" lstCROSS.AddItem "Кремень" ElseIf txtCROSS.Text = "9" Then lstCROSS.AddItem "Карборунд-искуственный" ElseIf txtCROSS.Text = "11" Then lstCROSS.AddItem "Карбокорунд-искуственный" ElseIf txtCROSS.Text = "13" Then lstCROSS.AddItem "Электрокорунд-искуственный" End If End If и так следующий вопрос.... Все хорошо. Но беда в том, что при следующем обновлении словаря (кот. включал в себя уже более 70 пунктов) и вводе вопроса в программу Basic мне выдает такую ошибку: "Compile error: procedure too large" Я врубился, что, типа, код слишком длинный. Подскажите плиз, как избежать этой ошибки, и продолжать дополнять словарь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2006, 13:46:19 |
|
||
|
Compile error: procedure too large-как с ним бороться?
|
|||
|---|---|---|---|
|
#18+
Почему бы не использовать базу данных в этом случае? бороться с procedure too large не стоит не поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 07:11:24 |
|
||
|
Compile error: procedure too large-как с ним бороться?
|
|||
|---|---|---|---|
|
#18+
а если не хочется базы использовать, то раздели условия на несколько процедур и обедени в событие клик Private Sub U1() условия end Sub Private Sub U2() условия end Sub Private Sub cmbGo_Click() U1:U2 итд end sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 07:59:07 |
|
||
|
Compile error: procedure too large-как с ним бороться?
|
|||
|---|---|---|---|
|
#18+
А если так: If txtANSWER.Text = "Абразивный материал" Then Select Case txtCROSS.Text Case "5" lstCROSS.AddItem "Алмаз-самый крепкий" lstCROSS.AddItem "Кварц" lstCROSS.AddItem "Пемза" Case "6" lstCROSS.AddItem "Гранат" lstCROSS.AddItem "Корунд" lstCROSS.AddItem "Наждак" Case "7" lstCROSS.AddItem "Боразон-искуственный" lstCROSS.AddItem "Кремень" Case "9" lstCROSS.AddItem "Карборунд-искуственный" Case "11" lstCROSS.AddItem "Карбокорунд-искуственный" Case "13" lstCROSS.AddItem "Электрокорунд-искуственный" End Select End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 09:22:09 |
|
||
|
Compile error: procedure too large-как с ним бороться?
|
|||
|---|---|---|---|
|
#18+
2 Андрей II: а что это меняет? Однозначно использовать БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 09:51:14 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33509893&tid=2166480]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
198ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 506ms |

| 0 / 0 |
