|
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
int imgWidth = 32;
int imgHeight = 32;
TImage* img[10][10];
for( int i = 0 ; i < 10; i++)
{
for( int j = 0; j < 10; j++)
{
img[i][j] = new TImage(this);
img[i][j]->Parent = this;
img[i][j]->Name = String("img_") + i +"_"+ j;
img[i][j]->Picture->LoadFromFile("move.bmp");
img[i][j]->Top = i * imgHeight;
img[i][j]->Left = j * imgWidth;
img[i][j]->OnClick = ImageClick;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ImageClick(TObject *Sender)
{
TStringList* delimitedImgName = new TStringList;
delimitedImgName->Delimiter = '_';
ShowMessage( dynamic_cast<TImage*>(Sender)->Name);
delimitedImgName->DelimitedText = dynamic_cast<TImage*>(Sender)->Name;
for(int i = 0 ; i < delimitedImgName->Count; i++)
{
ShowMessage(delimitedImgName->Strings[i]);
}
delete delimitedImgName;
}
몇년째 눈팅만 하다 help me님의 실력이 없어서 죄송합니다란 말에 마음이 울컥해서 답글 달아봅니다. 일하기 싫은 마음도 좀 있고...ㅎ
대충 이런걸 원하신거 같은데...
이벤트로 넘어 오는 Sender는 해당 컴포넌트의 포인터를 가르키고 있습니다.
이걸 TImage 포인터로 형변환 한후 사용하시면 됩니다.
dynamic_cast<>는 c++ 스타일의 캐스팅입니다. c의 (TImage*)Sender와 같은 역할이죠. 물론 타입 체크등 부가 적인 기능이 있긴 하지만... 솔직히 c++캐스팅이 좀 특이하게 생겨서 c에서 c++ 넘어올때 적잖이 당황하는 경향이 있는데 별거 아니에요.
그럼...
help me 님이 쓰신 글 :
: 동적생성된 컴포넌트를 클릭했을때
:
: 그클릭으로 동적생선된 컴포넌트의 정보인 네임이나 변수명을 알고싶습니다.
:
: 가능할까요?
:
:
: help me 님이 쓰신 글 :
: : 어그러니깐...
: :
: : TImage *Img[10][10];로 동적생성한담에요
: :
: : 1. Button1클릭할때마다 X ,Y 증가시켜 Img[X][Y]로 해서 생성을 했거든요.
: :
: : 생성한다음
: :
: : 2. 그이미지 Img[X][Y]의 클릭 이벤트를 만들어서 클릭했을때 클릭한 Img[X][Y]의 X,Y값이 알고싶거든요.
: :
: : 포인트는 클릭한 동적생성한 Img컴포넌트의 X,Y를 받고싶습니다.
: :
: : 음 한마디로 그 동적생성한 Img를 클릭했을때 그 X,Y과 어떤값인지 알고싶습니다.
: :
: : 제가 실력이없어서 설명도 잘못하네요. 죄송합니다.
: :
: : 혹시나 이방법은 가능할지 묻고싶습니다.
: : 동적생성할때 Name 값을 넣는데 이 Name 값을 X,Y값으로 넣어 나중 클릭했을때
: :
: : 클릭한 네임의 STR을 구분하여 X,Y를 구하는것입니다.
: :
: : 근데 이문제도 클릭했을때 그 X,Y를 받아와야한다는겁니다. ㅠㅠ 비교할값이 있어야하는데 비교를 못합니다.....
: :
: : 그래도 이해못하시겟다면 답변해주시는거보고 소스첨부해보겠습니다.
: :
: : Lyn 님이 쓰신 글 :
: : : 뭔코드를쓰신거임? (...)
: : : help me 님이 쓰신 글 :
: : : : TImage *Img[X][Y];
: : : : int X=50;
: : : : int Y=50;
: : : :
: : : : 해놓고 Button1Click이벤트를 햇을때 Img[X][Y]의 X,Y의 값을 얻고싶습니다.
: : : :
: : : : 동적생성한 변수네임을 어덯게 얻을수잇죠 ???
|