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
|
AnsiString Filepath;
AnsiString Images[4];
//------------ Méthodes de jGroupBox
__fastcall jGroupBox::jGroupBox(TWinControl *AOwner, int NbImages, bool Source)
: TGroupBox(AOwner)
{
Parent = AOwner;
TPoint Pos = Point(10,10);
for(int j = 0; j < NbImages; j++)
{
new jImage(this, j, &Pos, Source);
Pos.y = Pos.y + 30;
}
}
__fastcall jGroupBox::~jGroupBox()
{
}
//------------ Méthodes de jImage
__fastcall jImage::jImage(TWinControl *AOwner, int N, TPoint *Pos, bool Source)
: TImage(AOwner)
{
Parent = AOwner;
SetBounds(Pos->x, Pos->y, 26, 26);
if(Source)
{
Picture->LoadFromFile(Images[N]);
TMenuItem *M = new TMenuItem(this);
M->Caption = "Image " + IntToStr(N+1);
M->Tag = (int)this;
M->OnClick = Form1->SelectSource;
Form1->PopupMenu1->Items->Add(M);
}
else
{
Picture->Assign(Form1->Empty1->Picture);
PopupMenu = Form1->PopupMenu1;
}
}
__fastcall jImage::~jImage()
{
}
//------------ Méthodes de TForm1
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Filepath = ExtractFilePath(Application->ExeName);
Images[0] = Filepath + "Image1.BMP";
Images[1] = Filepath + "Image2.BMP";
Images[2] = Filepath + "Image3.BMP";
Images[3] = Filepath + "Image4.BMP";
jGroupBox *G1 = new jGroupBox(this, 4, true);
G1->SetBounds(10,10,80,200);
jGroupBox *G2 = new jGroupBox(this, 6, false);
G2->SetBounds(100,10,170, 200);
}
void __fastcall TForm1::SelectSource(TObject *Sender)
{
//Le sender est un menuitem du popupmenu
TMenuItem* M = (TMenuItem*)Sender;
//L'adresse de l'objet source est dans le Tag du menuitem :
jImage *Srce = (jImage*)M->Tag;
//L'objet de destination est l'objet qui est à l'origine du popup :
jImage *Dest = (jImage*)PopupMenu1->PopupComponent;
//Sans doute qu'il ne reste plus qu'à faire :
Dest->Picture->Assign(Srce->Picture);
} |
Partager