bonsoir,
j'ai un problèm très siérieux et j'ai pas trouvé de solution et c'est très génant:
je crèe des TImages dynamquement et je les affectues un POPUPMENU
et j'utilse les évènements de la sourie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Image[i] = new TImage(this); Image[i]->Parent = Panel1; Image[i]->OnMouseDown = ImageMouseDown; Image[i]->OnMouseMove = ImageMouseMove; Image[i]->OnMouseUp = ImageMouseUp; Image[i]->PopupMenu = Form1->PopupMenu1; Form1->PopupMenu1->AutoPopup = true;
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 void __fastcall TForm1::ImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TImage *Image = (TImage*)Sender; eqchoisi = Image->Tag; deplacer = true; imageenfonce = Button; DeplX = X; DeplY = Y; if (Button == mbRight) { if(Shift.Contains(ssCtrl)) { tab[eqverif] = eqchoisi; if ((lien [tab[eqverif-1]][tab[eqverif]]>=1)&&(lien [tab[eqverif]][tab[eqverif-1]]>=1)) { if ( eqverif >= 1){ lien [tab[eqverif-1]][tab[eqverif]]=3; lien [tab[eqverif]][tab[eqverif-1]]=3;} Form1->Analyser1->Enabled= true; } //Form1->ListBox1->Items->Add(tab[eqverif]); eqverif ++; lier(); } else { if (Shift.Contains(ssAlt)) { if (eqsupp >=2) eqsupp=0; supp[eqsupp]=eqchoisi; if ( eqsupp >= 1){ lien [supp[eqsupp]][supp[eqsupp-1]]=0; lien [supp[eqsupp-1]][supp[eqsupp]]=0; } eqsupp++; Form1->PaintBox1->Repaint(); lier(); } else { Form1->Analyser2->Enabled =false; Form1->sauvgarder1->Enabled = false; for (int j=0;j<comppop;j++) { if (eqchoisi==pop[j]) { Form1->Analyser2->Enabled =true; Form1->sauvgarder1->Enabled = true; } } } } } }
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 void __fastcall TForm1::ImageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if (imageenfonce == 0) { TImage *Image = (TImage*)Sender; if(deplacer) { Image->SetBounds( Image->Left + X - DeplX, Image->Top + Y - DeplY, Image->Width, Image->Height); label[Image->Tag]->Left = Image->Left; label[Image->Tag]->Top = Image->Top -15; } else { Form3->Edit3->Text = Image->Tag; Form3->Edit2->Text = label[Image->Tag]->Caption; } } }j'ai essaye 2 ou 3 solutions et ça ne marche pas.
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 void __fastcall TForm1::ImageMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TImage *Image = (TImage*)Sender; if (imageenfonce == 0) { label[Image->Tag]->Left = Image->Left; label[Image->Tag]->Top = Image->Top -15; deplacer = false; lier(); Application->ProcessMessages(); } else { lien [eqchoisi][Image->Tag] = 1; lien [Image->Tag][eqchoisi] = 1; lier(); } }
MErci pour votre aide
Partager