|
안녕하세요 utime.김성하 입니다
하핫~ 정말 안되네요~ ^^;;;
그러나~ 어찌어찌 하다보니 해결 했습니다.
SpeedButton에 이미지 프로퍼티를 보니 SetGlyph가 있는데 요 함수안에서는 왜그런진 모르겠지만 작동을 안하네요~ ㅡ,ㅡ;;;( 왜그럴까... 내공 부족 입니다. )
그래서 요렇게 바꾸니 잘 됩니다.
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
TSpeedButton *sbtn = (TSpeedButton *)Sender;
Graphics::TBitmap *bmp = new Graphics::TBitmap;
this->ImageList1->GetBitmap(1, bmp);
sbtn->Glyph = bmp;
delete bmp;
bmp = NULL;
}
//---------------------------------------------------------------------------
음~ 그런데 궁굼한게 있는데
sbtn->Glyph = bmp;
이렇게 하면 bmp 포인터만 넘어가는거 아닌가요?
복사가 되는건가?
아래에서 bmp 메모리 해제를 하는데 에러가 안나는 걸 보면 복사가 되는 것 같습니다만...
뭐 다른 방법으로는
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
TSpeedButton *sbtn = (TSpeedButton *)Sender;
Graphics::TBitmap *bmp = new Graphics::TBitmap;
TCanvas *Canvas;
Canvas = sbtn->Glyph->Canvas;
this->ImageList1->GetBitmap(1, bmp);
Canvas->Draw(0,0, bmp);
delete bmp;
bmp = NULL;
}
//---------------------------------------------------------------------------
이렇게 하면 되것지요~
둘다 결과는 똑같습니다.
즐프하세요~
하안인 님이 쓰신 글 :
: 답변감사합니다. 그런데..
:
: 이미지가 로드된후 다시 스피트 버튼을 클릭하면
:
: 이미지가 바뀌도록 하면 변경이 안됩니다.
:
: void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
: {
: this->ImageList1->GetBitmap(2, this->SpeedButton1->Glyph);
:
: }
:
: 제가 하려는 것은 버튼을 클릭할때 마다 이미지가 토글되도록 하려고 하는 거거든요.
|