|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.09.2013, 17:20 | #1 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 143
|
Как сократить код?
Всем привет. Написал код, в котором пока 171 блок, а планировалось около 600, но мне сейчас уже выдоается ошибка, что процедура большая. Что можно сделать? Начало кода:
Код:
Последний раз редактировалось Stilet; 15.09.2013 в 17:55. |
15.09.2013, 17:34 | #2 |
Форумчанин
Регистрация: 22.06.2011
Сообщений: 325
|
Если так сделаете, уже на много сократите код
Код:
Заказать макрос можно на сайте http://excel4you.ru/
|
15.09.2013, 20:36 | #3 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 143
|
Спасибо, что ответили. Попробовал ваш код. В текстбоксы данные не приходят. Поставил после каждой строки End If - без изменений.
Sub m() If TreeView1.SelectedItem = "Äëÿ âûòÿæêè-600" Then Call TextValue(600, 300, 720, 1) End If If TreeView1.SelectedItem = "1 îòêèäíàÿ äâåðü R1000-300" Then Call TextValue(300, 300, 720, 1) End If If TreeView1.SelectedItem = "1 îòêèäíàÿ äâåðü R1000-350" Then Call TextValue(350, 300, 720, 1) End If If TreeView1.SelectedItem = "1 îòêèäíàÿ äâåðü R1000-400" Then Call TextValue(400, 300, 720, 1) End If If TreeView1.SelectedItem = "1 îòêèäíàÿ äâåðü R1000-450" Then Call TextValue(450, 300, 720, 1) End If If TreeView1.SelectedItem = "1 îòêèäíàÿ äâåðü R1000-500" Then Call TextValue(500, 300, 720, 1) End If If TreeView1.SelectedItem = "1 îòêèäíàÿ äâåðü R1000-550" Then Call TextValue(550, 300, 720, 1) End If If TreeView1.SelectedItem = "1 îòêèäíàÿ äâåðü R1000-600" Then Call TextValue(600, 300, 720, 1) End If If TreeView1.SelectedItem = "1 îòêèäíàÿ äâåðü R1000-650" Then Call TextValue(650, 300, 720, 1) End If If TreeView1.SelectedItem = "1 îòêèäíàÿ äâåðü R1000-700" Then Call TextValue(700, 300, 720, 1) End If End Sub Sub TextValue(ByVal t19 As Variant, ByVal t2 As Variant, ByVal t3 As Variant, ByVal t4 As Variant) TextBox19.Tag = t19 TextBox19.Text = t19 TextBox2.Tag = t2 TextBox2.Text = t2 TextBox3.Tag = t3 TextBox3.Text = t3 TextBox4.Tag = t4 TextBox4.Text = t4 End Sub |
15.09.2013, 20:40 | #4 |
Форумчанин
Регистрация: 22.06.2011
Сообщений: 325
|
Хз, чот значит криво сделали! Должно работать.
Приложите файл будем кумекать...
Заказать макрос можно на сайте http://excel4you.ru/
|
16.09.2013, 18:35 | #5 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 143
|
Попробовал так
Код:
Посмотрю на какую длину хватит. Может весь код поместится. Спасибо. ________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка на панели форматирования с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 16.09.2013 в 22:37. |
17.09.2013, 18:47 | #6 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 143
|
Ну вот я и приплыл. 2/3 кода написал и снова ошибка что код длинный. Посмотрите что еще можно сделать. Файл вложил. спасибо.
|
17.09.2013, 19:17 | #7 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
Да уж, "букафф" много! Жалко такой труд.
Я в таких случаях выношу всевозможные процедуры в отдельный модуль. В модуле формы оставляю только инициализацию. Посмотрите пробу в файле, сделал для двух if, там все понятно. Но может подправить надо будет, проверить не получается, нет компонента, а заморачиваться с установкой/подключением некогда.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
17.09.2013, 19:36 | #8 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
Думаю, еще можно несколько сократить код, назначив повторяющимся фразам строковые переменные.
Навскидку, у Вас повторяются многие фразы, например "Кухонные модули-Шкафы-Н=720-1 распашная плоская дверь". Назначьте переменную этой фразе Код:
глядишь код и уменьшится
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
17.09.2013, 21:46 | #9 |
Форумчанин
Регистрация: 22.06.2011
Сообщений: 325
|
Вот если вы из этой процедуры
Код:
Заказать макрос можно на сайте http://excel4you.ru/
|
18.09.2013, 16:06 | #10 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 143
|
Дерево у меня заполнено полностью. А вот выбор ветки для получения текстов и картинки, здесь проблема. Может вернуться в начало, как предлагал Watcher_1:
Код:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сократить код | kostan3 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 17.02.2013 17:24 |
Как сократить код | Вадим12091965 | Microsoft Office Excel | 6 | 28.10.2012 11:04 |
как можно сократить код | sergio280888 | БД в Delphi | 0 | 17.04.2011 17:09 |
Как сократить код DLL | ProgDel | Общие вопросы Delphi | 3 | 16.02.2010 21:12 |
Как можно сократить код | jocry | Общие вопросы Delphi | 2 | 20.01.2009 08:35 |