Bonjour,

j'ai une application dans laquelle j'ai des graphes à l'intérieur d'un tabcontrol.
Des données arrivent sur le port USB et j'affiche celles ci dans mes graphes.
Les données peuvent venir de source différente (numéro de série différent) donc j'affiche ces données dans un graphe d'un onglet différent dans le tabcontrol.
Ceci fonctionne bien mais j'aimerai que les onglets ne changent pas automatiquement : c'est à dire que lorsque l'utilisateur visualise les données d'une source dans un onglet, qu'il reste sur le même onglet.
J'ai plus ou moins réussi à palier ce problème (je reste sur le même onglet) mais les données des graphes se mélangent !!!

je vous met le bout de code correspondant pour que vous compreniez mieux mon soucis.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
 
int index = FormClient->JvgTabControlFlotteurs->Tabs->IndexOf( NomSerie );
	if(index == -1)
	{
		Step_x = 1;
		FormClient->JvgTabControlFlotteurs->Tabs->Add( NomSerie );
		n = FormClient->JvgTabControlFlotteurs->Tabs->Count-1;
 
 
		// La série de ChartPH
		Serie = new TFastLineSeries(FormClient);
		FormClient->ChartPH->Axes->Left->Automatic = true;
		FormClient->ChartPH->Axes->Bottom->Automatic = true;
		FormClient->ChartPH->Legend->Visible = false;
		Serie->LinePen->Width = 2;
		Serie->Color = clBlue;
		FormClient->ChartPH->AddSeries(Serie);
		Serie->AddXY(Step_x, Y1, "", clBlue);
		FormClient->EditPH->Text = FormatFloat("0.00", (Serie->YValues->Last()));
		FormClient->EditMoyPH->Text = FormatFloat("0.00",((Serie->YValues->Total)/(Serie->YValues->Count)));
		//FormClient->ChartPH->Refresh();
		//Serie->Active = true;
 
		// La série de ChartConductivite
		Serie = new TFastLineSeries(FormClient);
		FormClient->ChartConductivite->Axes->Left->Automatic = true;
		FormClient->ChartConductivite->Axes->Bottom->Automatic = true;
		FormClient->ChartConductivite->Legend->Visible = false;
		Serie->LinePen->Width = 2;
		Serie->Color = clGreen;
		FormClient->ChartConductivite->AddSeries(Serie);
		Serie->AddXY(Step_x, Y2, "", clGreen);
		FormClient->EditConductivite->Text = FormatFloat("0.00", (Serie->YValues->Last()));
		FormClient->EditMoyConductivite->Text = FormatFloat("0.00",((Serie->YValues->Total)/(Serie->YValues->Count)));
		//FormClient->ChartConductivite->Refresh();
		//Serie->Active = true;
 
		// La série de ChartTemperature
		Serie = new TFastLineSeries(FormClient);
		FormClient->ChartTemperature->Axes->Left->Automatic = true;
		FormClient->ChartTemperature->Axes->Bottom->Automatic = true;
		FormClient->ChartTemperature->Legend->Visible = false;
		Serie->LinePen->Width = 2;
		Serie->Color = clRed;
		FormClient->ChartTemperature->AddSeries(Serie);
		Serie->AddXY(Step_x, Y3, "", clRed);
		FormClient->EditTemperature->Text = FormatFloat("0.0", (Serie->YValues->Last()));
		FormClient->EditMoyTemperature->Text = FormatFloat("0.0",((Serie->YValues->Total)/(Serie->YValues->Count)));
		//FormClient->ChartTemperature->Refresh();
		//Serie->Active = true;
 
 
 
		FormClient->JvgTabControlFlotteurs->TabIndex = n;
 
		Tableau[n].EditHeure = Heure.sprintf("%02d h %02d min", Time->tm_hour, Time->tm_min);
		FormClient->EditHeure->Text = Tableau[n].EditHeure;
 
		Tableau[n].EditDate = laDate.sprintf("%02d.%02d.%02d", Time->tm_mday, (Time->tm_mon+1) ,(Time->tm_year+1900));
		FormClient->EditDate->Text = Tableau[n].EditDate;
 
		FormClient->EditNom->Text = Tableau[n].EditNom;
 
 
 
	}
	else
	{
		Tableau[n].Tab = FormClient->JvgTabControlFlotteurs->TabIndex;
 
 
		FormClient->JvgTabControlFlotteurs->TabIndex = index;
 
 
		Step_x++;
		// La série de ChartPH
		Serie = (TFastLineSeries *)FormClient->ChartPH->Series[ index ];
		Tableau[index].Serie = Serie;
		Serie->AddXY(Step_x, Y1, "", clBlue);
		FormClient->EditPH->Text = FormatFloat("0.00", (Serie->YValues->Last()));
		FormClient->EditMoyPH->Text = FormatFloat("0.00",((Serie->YValues->Total)/(Serie->YValues->Count)));
		//FormClient->ChartPH->Refresh();
		Serie->Active = true;
 
 
		// La série de ChartConductivite
		Serie = (TFastLineSeries *)FormClient->ChartConductivite->Series[ index ];
		Serie->AddXY(Step_x, Y2, "", clGreen);
		FormClient->EditConductivite->Text = FormatFloat("0.00", (Serie->YValues->Last()));
		FormClient->EditMoyConductivite->Text = FormatFloat("0.00",((Serie->YValues->Total)/(Serie->YValues->Count)));
		//FormClient->ChartConductivite->Refresh();
		Serie->Active = true;
 
		// La série de ChartTemperature
		Serie = (TFastLineSeries *)FormClient->ChartTemperature->Series[ index ];
		Serie->AddXY(Step_x, Y3, "", clRed);
		FormClient->EditTemperature->Text = FormatFloat("0.0", (Serie->YValues->Last()));
		FormClient->EditMoyTemperature->Text = FormatFloat("0.0",((Serie->YValues->Total)/(Serie->YValues->Count)));
		//FormClient->ChartTemperature->Refresh();
		Serie->Active = true;
 
		Tableau[n].EditHeure = Heure.sprintf("%02d h %02d min", Time->tm_hour, Time->tm_min);
		FormClient->EditHeure->Text = Tableau[index].EditHeure;
 
		Tableau[n].EditDate = laDate.sprintf("%02d.%02d.%02d", Time->tm_mday, (Time->tm_mon+1) ,(Time->tm_year+1900));
		FormClient->EditDate->Text = Tableau[n].EditDate;
 
		FormClient->EditNom->Text = Tableau[n].EditNom;
 
		FormClient->JvgTabControlFlotteurs->TabIndex = Tableau[n].Tab;
 
		//Serie->Active = true;
		//Serie->RefreshSeries();
 
	}
Merci d'avance pour votre aide !