![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 143
|
![]()
Всем привет. Написал код, в котором пока 171 блок, а планировалось около 600, но мне сейчас уже выдоается ошибка, что процедура большая. Что можно сделать? Начало кода:
Код:
Последний раз редактировалось Stilet; 15.09.2013 в 17:55. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 22.06.2011
Сообщений: 325
|
![]()
Если так сделаете, уже на много сократите код
Код:
Заказать макрос можно на сайте http://excel4you.ru/
|
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.06.2011
Сообщений: 325
|
![]()
Хз, чот значит криво сделали! Должно работать.
Приложите файл будем кумекать...
Заказать макрос можно на сайте http://excel4you.ru/
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 143
|
![]()
Попробовал так
Код:
Посмотрю на какую длину хватит. Может весь код поместится. Спасибо. ________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка на панели форматирования с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 16.09.2013 в 22:37. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 21.10.2012
Сообщений: 143
|
![]()
Ну вот я и приплыл. 2/3 кода написал и снова ошибка что код длинный. Посмотрите что еще можно сделать. Файл вложил. спасибо.
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
Да уж, "букафф" много!
![]() Я в таких случаях выношу всевозможные процедуры в отдельный модуль. В модуле формы оставляю только инициализацию. Посмотрите пробу в файле, сделал для двух if, там все понятно. Но может подправить надо будет, проверить не получается, нет компонента, а заморачиваться с установкой/подключением некогда.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
![]()
Думаю, еще можно несколько сократить код, назначив повторяющимся фразам строковые переменные.
Навскидку, у Вас повторяются многие фразы, например "Кухонные модули-Шкафы-Н=720-1 распашная плоская дверь". Назначьте переменную этой фразе Код:
глядишь код и уменьшится
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 22.06.2011
Сообщений: 325
|
![]()
Вот если вы из этой процедуры
Код:
Заказать макрос можно на сайте http://excel4you.ru/
|
![]() |
![]() |
![]() |
#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 |