![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 24.04.2015
Сообщений: 7
|
![]()
Здравствуйте! Заранее извиняюсь, если подобная ситуация уже разбиралась на форуме. Тогда дайте ссылку на соответствующую тему.
Суть моей проблемы: Решил написать программу с двумя кнопками в одной форме. При нажатии первой кнопки должен формироваться массив, при нажатии второй кнопки полученный массив должен обрабатываться. Для двух кнопок создал две процедуры: procedure TForm1.Button1Click(Sender: TObject); и procedure TForm1.Button2Click(Sender: TObject); с соответствующими программами, и всё вроде работает, но при нажатии второй кнопки процедура не видит данные полученные первой процедурой, и видимо она обрабатывает какие-то коды, потому что ответ выдаётся но не такой, какой ожидается. Поэтому прошу, подскажите как во второй процедуре задействовать данные из первой процедуры? Вот программный текст второй процедуры: Код:
Последний раз редактировалось Stilet; 28.04.2015 в 12:28. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
var Massiv выдвори в глобальные переменые.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 24.04.2015
Сообщений: 7
|
![]()
Куда именно вписать var Massiv:array[1..10] of integer; т.е. где именно должны прописываться глобальные переменные?
Пишу после unit Unit1; interface при запуске программы компилятор подчёркивает uses и выдаёт ошибку: [Error] Unit1.pas(6): Declaration expected but 'USES' found. Пишу после var Form1: TForm1; программа работает, но выдаёт Max и Min = 0, т.е. тоже что-то не то. |
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А ты в принципе понимаешь что такое глобальные переменные и для чего служит секция var?
Разницу между локальными (внутри функции) и глобальными переменным различаешь?
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 24.04.2015
Сообщений: 7
|
![]()
Я - чайник в Delphi, т.е. пытаюсь разобраться.
Так как пишу здесь, то не сложно догадаться, что Инетом пользуюсь. Поэтому: Глобальные переменные — это переменные, объявленные за пределами функции или процедуры. Например, переменные, объявленные в главном файле проекта Delphi или в разделах интерфейса или реализации модуля, является глобальными. Локальные переменные — это переменные, которые объявлены в процедуре или функции. Вы мне предлагаете Var Massiv вынести из процедуры в общую часть программы. Вот я и спрашиваю в какое именно место выносить? В раздел итерфейса я уже Var Massiv выносил. Можно пропечатать кусочек из какой-нибудь программы с примером выноса в глобальные переменные массива? |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
у Вас в программе есть место, где объявляется переменная формы:
Код:
Ну и НЕ забудьте убрать описание этого же массива внутри процедур! |
![]() |
![]() |
![]() |
#7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Например тут: http://pascal.proweb.kz/index.php?page=57 раздел описания переменных Или вот: http://exinform09.narod.ru/otveti/28.html Т.е. классику, основы подтяни.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 24.04.2015
Сообщений: 7
|
![]()
Stilet, я понимаю, что такое раздел переменных var, но до сих пор пользовался только локальным разделом описания переменных, т.е. только в процедуре. За совет про книжки спасибо, у меня уже накачено с десяток по Делфи и Паскалю (может и больше), Но мне на данный момент нужен практический совет, теорию я и так подтягиваю помаленьку. За ссылки спасибо. Обязательно ознакомлюсь, надеюсь, что они смогут прояснить мой вопрос.
Serge_Bliznykov, спасибо за подсказку, но я уже пробовал там объявить массив и об этом написал в третьем посте этой темы. В результате значение Max и Min выдаётся равным нулю, т.е. данные массива из первой процедуры не поступают во вторую процедуру на обработку. Может я неверно объявляю там массив? Из второй процедуры описание массива убирал. Ага! Ну вот, допёр)) Оказывается описание массива нужно убирать, как из второй процедуры, та и из первой, где массив формируется. Оставлять нужно только одно глобальное описание этого массива. Как приятно общаться с умными людьми ))) |
![]() |
![]() |
![]() |
#9 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#10 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
Глобальные переменные ндо юзать только тогда, когда по-другому никак.
Здесь этот несчастный массив из 10 целых чисел нужно сделать полем формы и всё. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Две формулы в одной ячейке. | DoctorDremlen | Microsoft Office Excel | 2 | 07.05.2013 01:00 |
Две кнопки | Ko$ | Общие вопросы Delphi | 0 | 15.11.2011 15:16 |
Добавать две кнопки! | _Мария_ | Помощь студентам | 2 | 22.06.2011 22:01 |
Две группы переключателей на одной форме Delphi | ChEaTeR-abc | Помощь студентам | 5 | 04.07.2010 16:53 |
две ссылки в одной | mutaborxxx | HTML и CSS | 3 | 12.10.2009 17:40 |