Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как реализовать следующее...?

2.7K
19 декабря 2004 года
sys33
55 / / 16.12.2004
Каким образом можно реализовать следующую вещь. Есть текстовый файл, состоящий из нескольких блоков, блоки в свою очередь состоят из столбцов чисел. На форме расположены три ComboBox и Button, то есть в зависимости от выбора пользователя в ComboBox при нажатии кнопки из файла считывается определенный блок чисел, загоняется в массив и по этому массиву строится кривая Series на графике Chart1. Если пользователь выбирает значения в ComboBox и опять нажимает Button, то на графике к уже имеющейся кривой строится вторая. Вот мой код:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
FILE *in=fopen("e://dfh.rez","rb");
int MAX=6,st1,st2,k=0,j=0,pos=0,pr=1;
....бла бла бла....
}
fclose(in);
for(int z=1;z<27;z++)
Chart1->Series[pr]->AddXY(a[z],b[z],"",clBlue);
}
Но ведь с каждым нажатием кнопки, значение pr которая определяет в какой Series строится линия обнуляется и получается что для построения используется только Series1, как сделать так, чтобы pr все таки увеличивалась на 1 при последующих нажатиях Button, или может кто-нибудь может придумать другой путь???
301
19 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Нужно объявить pr вот так
 
Код:
static int pr;

И писать в конце функции
 
Код:
pr++;

Все. Вариант - объявить pr глобально.
3
19 декабря 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by lord Kelvin
Нужно объявить pr вот так
 
Код:
static int pr;

И писать в конце функции
 
Код:
pr++;

Все. Вариант - объявить pr глобально.



Извиняюсь, ребята (в т.ч. и lord Kelvin), не пробовали использовать ООП? Это вопрос с иронией к начатому обсуждению проглобальные переменные.

Кнопка - это всего-лишь элемент интерфейса, её обработчик - это не место для описания алгоритма постороения графиков и т.п. бизнес-логике. Целесообразнее создать класс отвечающий за считывание и хранение информации, в данном случае в него можно добавить ещё и средство визуализации информации (т.е. построения графика) и подсчета количества (или номера) очередного графика (pr), хотя это уже несколько противоречит архитектуре документ/вид.

Кстати, sys33, неужели удобно так писАть и читать?
int MAX=6,st1,st2,k=0,j=0,pos=0,pr=1;

lord Kelvin, статические переменные надо инициализировать, иначе они практически теряют смысл:
static int pr = 0;

2.7K
20 декабря 2004 года
sys33
55 / / 16.12.2004
Цитата:
Originally posted by Green


Извиняюсь, ребята (в т.ч. и lord Kelvin), не пробовали использовать ООП? Это вопрос с иронией к начатому обсуждению проглобальные переменные.

Кнопка - это всего-лишь элемент интерфейса, её обработчик - это не место для описания алгоритма постороения графиков и т.п. бизнес-логике. Целесообразнее создать класс отвечающий за считывание и хранение информации, в данном случае в него можно добавить ещё и средство визуализации информации (т.е. построения графика) и подсчета количества (или номера) очередного графика (pr), хотя это уже несколько противоречит архитектуре документ/вид.

Кстати, sys33, неужели удобно так писАть и читать?
int MAX=6,st1,st2,k=0,j=0,pos=0,pr=1;

lord Kelvin, статические переменные надо инициализировать, иначе они практически теряют смысл:
static int pr = 0;


А как писать по-другому? Сразу в том же месте где переменная применяется ее и объявлять? Просто программировать я только начинаю, а времени читать книжки пока нет, т.к. сессия на носу, а программу для успешного допуска написать надо, вот и пишу, что могу и как могу.

259
20 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by sys33

А как писать по-другому? Сразу в том же месте где переменная применяется ее и объявлять? Просто программировать я только начинаю, а времени читать книжки пока нет, т.к. сессия на носу, а программу для успешного допуска написать надо, вот и пишу, что могу и как могу.


Если использовать ООП, то pr нужно объявить как свойство в классе формы.

Код:
class TForm1: public TForm
{
   public:
      int pr;
   .
   .
   .
};

TForm1* myForm;
myForm->pr++;


Теперь pr доступен для всех объектов на форме.
2.3K
20 декабря 2004 года
ART-CODE
134 / / 15.11.2004
Если по-быстрому , то так:
Код:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
FILE *in=fopen("e://dfh.rez","rb");
int MAX=6,st1,st2,k=0,j=0,pos=0,;
....бла бла бла....
}
fclose(in);

Button2->Tag++;

for(int z=1;z<27;z++)
Chart1->Series[Button2->Tag]->AddXY(a[z],b[z],"",clBlue);
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог