Dałoby się zrobić tak, aby funkcja mousedown( ) dla każdego stworzonego elementu była wykonywana właśnie dla tego elementu ?
Czyli może prościej: klikam na panel arr_of_panels[0] wykonuje się funkcja mousedown( ) tylko dla panelu arr_of_panels[0] i tak dla każdego elementu.
matrix.cpp
Matrix::Matrix(int rows, int cols)
{
[...]
for(int i=0 ; i<=8 ; i++) {
this->arr_of_panels[i] = new TPanel(this);
this->arr_of_panels[i]->Parent = this->box;
this->arr_of_panels[i]->Width = 100;
this->arr_of_panels[i]->Height = 25;
this->arr_of_panels[i]->Top = 15 + 25*i;
this->arr_of_panels[i]->Left = 10;
this->arr_of_panels[i]->Caption = "";
this->arr_of_panels[i]->Alignment = taLeftJustify;
this->arr_of_panels[i]->OnMouseDown = mousedown;
}
[...]
};
void __fastcall Matrix::mousedown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
this->arr_of_panels[??]->BevelOuter = bvLowered; \\tutaj pojawia się problem
}
matrix.h
class Matrix {
private:
TGroupBox *box;
TStringGrid *grid;
TPanel *inc_row, *dec_row, *inc_col, *dec_col;
TPanel *arr_of_panels[9];
public:
Matrix(int rows, int cols);
void __fastcall mousedown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
};