16.12.2012, 04:34. Просмотров 308. Ответов 0
Вступление: программа в форме1 считает необходимые данные, а в форме2 выводит по ним диаграмму токов и напряжения, графиков собственно 3 и нужно чтобы если отключишь 1 или несколько графиков после закрытия и последующего открытия диаграммы (формы2) все осталось так же как и до закрытия. Теперь собственно сам ГЛЮК : при нажатии кнопки закрытия диаграммы с первого клика не закрывается (а производит, как я понял остановку и обнуление) закрывается только со второго раза, тоже самое и при нажатие на перекрестия закрытия окон. Как это исправить?
если нужно могу скинуть саму программу
Да и кнопка "закрыть" это button3
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| #include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
float i[3];
float u[3];
int step=0;
int points = 200;
void __fastcall TForm2::FormActivate(TObject *Sender)
{
float I1 = StrToFloat(Form1->StringGrid4->Cells[1][1]),
I2 = StrToFloat(Form1->StringGrid4->Cells[2][1]),
I3 = StrToFloat(Form1->StringGrid4->Cells[3][1]);
int j = ComboBox1->ItemIndex;
if(j == 0)
{ i[0] = I1; i[1] = I2; i[2] = I3; Series1->Title="I1"; Series2->Title="I2"; Series3->Title="I3";}
if(j == 1)
{ i[0] = I3; i[1] = I2; i[2] = I1; Series1->Title="I3"; Series2->Title="I2"; Series3->Title="I1";}
Series1->Clear();
Series2->Clear(); // построитель графиков
Series3->Clear();
float vT = 2*M_PI /points;
float phase = StrToFloat(Form1->DBGrid1->Fields[11]->AsString);
for(int pnt=0;pnt<points;pnt++)>AddXY(vT*pnt+step, i[0]*ph, "", clBlue);
Series2->AddXY(vT*pnt+step, i[1]*ph, "", clRed);
Series3->AddXY(vT*pnt+step, i[2]*ph, "", clGreen);
}
step++;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button3Click(TObject *Sender)
{step = 0;
Button2 -> Click();
Close(); |
|