|
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 20
|
|
Переменная цикла в процедуре05.04.2016, 23:11. Показов 3738. Ответов 6
Метки нет (Все метки)
Здравствуйте. При написании программы возник вопрос. Допустим, что у нас есть цикл с переменной i, которая увеличивается от 1 до 10. Внутри цикла мы вызываем какую-то процедуру. Так вот, как в процедуру добавить эту переменную i, чтобы ее значение в процедуре соответствовало значению цикла!? При этом процедура не простая. Она вызывается по клику на кнопку (windows.form).
0
|
|
| 05.04.2016, 23:11 | |
|
Ответы с готовыми решениями:
6
Сделать так, чтобы в процедуре переменная *а* не меняла значение Переменная цикла For должна описываться в том же цикле, что и цикл for Переменная цикла for должна описываться в том же блоке, что и цикл for |
|
148 / 129 / 155
Регистрация: 22.03.2016
Сообщений: 502
|
|
| 05.04.2016, 23:14 | |
|
Либо надо добавить ее в параметр подпрограммы, либо вызывайте, как глобальную переменную.
0
|
|
|
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 863
|
|||||||
| 05.04.2016, 23:18 | |||||||
0
|
|||||||
|
Супер-модератор
|
||
| 05.04.2016, 23:22 | ||
|
Настораживает другое: почему обработчик нажатия на кнопку вызывается в цикле, а не сделано как положено: вынести нужную обработку в дополнительный метод, и из обработчика нажатия вызывать этот метод, а там, где нужно напрямую - вызывать напрямую. В таком случае заголовок доп. метода не будет фиксированным, и туда можно будет передать параметр.
1
|
||
|
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 20
|
||||||
| 06.04.2016, 11:39 [ТС] | ||||||
|
Итак. Сначала следует сказать, что это моя первая "настоящая" программа, так что я не сильно во всем понимаю (но надо же с чнгото начинать...). Есть массив из textbox-ов. Параметры каждого бокса (положение на форме, размер и т. Д.) Задаются в цикле, так как количество боксов на форме меняется в зависимости от заданных с клавиатуры переменных. Количество форм также задается, поэтому все это происходит еще в одном цикле. На каждой форме есть определенное количество боксов, которые надо заполнить, нажать на кнопку и форма закроется. Данные из боксов сохранятся. Цикл форм пойдет дальше, и откроется новая форма. При этом все данные из боксов необходимо записать. Для каждой формы используется один и тот же массив боксов. Поэтому при следующем шаге цикла массив перезаписывается. Все сохранения данных необходимо произвести в процедуре, которая закрывает текущую форму. Такова моя логика. Можете предложить другой способ. Это не принципиально... Попытаюсь добавить код программы.
Добавлено через 18 минут
0
|
||||||
|
Супер-модератор
|
||
| 06.04.2016, 14:12 | ||
|
Ну и где тут связь с изначальным вопросом? Что нужно передать в обработчик нажатия-то?
Добавлено через 51 секунду
1
|
||
|
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 20
|
|||||||||||||
| 06.04.2016, 15:49 [ТС] | |||||||||||||
|
Кликните здесь для просмотра всего текста
Вопрос не один.
Главный: У нас есть цикл с переменной i и массив форм. Они связаны (параметры очередной формы (положение, текст, а также все размещённые на форме кнопки и текстбоксы) задаются в следующем шаге цикла). В каждой форме есть одна и та же кнопка ANextButton, которая отвечает за закрытие открытой формы. Она активируется по клику. Для это существует строка: ANextButton.Click += ANext. Вот так работает программа. Следующий шаг состоит в том, чтобы сохранить все введённые значения. Это можно сделать только в процедуре (в будущем будет добавлено ограничение: если во всех текстбоксах есть текст, то вызывается процедура ANextButton.Click += ANext.). Для этого я хочу дописать процедуру вот так:
Второй вопрос: можно ли вообще использовать массив с 3-я переменными (Ach[i,i1,i2])... Если же нельзя, то подскажите как это сделать по другому... Вроде бы всё. Если что-то не понятно - спрашивайте. Добавлено через 6 минут Добавлено через 30 минут Мда... Бывает и такое... Задал i, как глобальную переменную, дописал в процедуре:
Возможно, при написании этой программы, я снова где-нибудь запутаюсь, но зато буду знать, что мне всегда здесь помогут.
0
|
|||||||||||||
| 06.04.2016, 15:49 | |
|
Помогаю со студенческими работами здесь
7
Выдает ошибку :Переменная цикла for должна описываться в том же блоке, что и цикл for Переменная моего типа не видна в процедуре Переменная S в процедуре не меняет значения Переменная не известна в созданной процедуре(
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|