|
소영 님이 쓰신 글 :
: 안녕하세요? 또 질문을 올리는군요.
: 항상 질문만 하는것 같아 임프님께 죄송하지만 여기만큼 알찬 곳은 없는것 같아요.
:
: 이번엔 버튼을 누를때마다 새로 이미지를 불러오는 건데요, 물론 이전에 불러온 이미진 보전하면서요. 빌더 예제폴더에서 버튼을 누를때마다 Shape를 그리는 예제를 찾아 Shape대신 Image를 불러오도록 만들었습니다.
: 첨엔 단순히 Shape를 Image로 바꿔썼는데 실패했구요.
: 그래서 아래처럼 바꿨는데 이번엔 에러는 없지만 이미지가 나타나질 않습니다.
: 어디가 문젠지 모르겠습니다.
: 그냥 제생각대로만 코딩을 한거라 아주 틀린 방법일 수도 있지만
: 원본 코드와 제가 바꾼 부분(-->로 표시)을 같이 적어봤습니다. 한번 봐주세요.
:
: void __fastcall TForm1::AddNewShape(int X, int Y, int Type)
: {
: TShape* ObjPtr=new TShape(this);
: -->TImage* ObjPtr=new TImage(this);
:
: ObjPtr->Parent=this;
:
: ObjPtr->Top=Y;
: ObjPtr->Left=X;
: ObjPtr->Shape=(Extctrls::TShapeType)Type;
: //여기가 젤 문젠데... TImageType은 Extctrls에 없더군요.사용법을 몰라서 대신
: //아래처럼 바꿔봤습니다.
:
: --> Graphics::TBitmap *Bitmap;
: --> Bitmap = new Graphics::TBitmap();
: --> pBitmap->TransparentMode = tmAuto;
: --> Bitmap->LoadFromFile("D:\\kccm\\images\\mix.bmp");
: --> ObjPtr->Picture->Graphic = Bitmap;
:
: //add object to list
: ObjectList->Add((void*)ObjPtr); // TList *ObjectList;로 선언
: }
:
:
임펠리테리입니다.
어떤 목적으로 만든 코드인지 거의 이해가 되지 않습니다만, 일단 문제가 되는 것은 다음 라인입니다.
ObjPtr->Picture->Graphic = Bitmap;
다음과 같이 수정해보세요.
ObjPtr->Picture->Bitmap->Assign(Bitmap);
그럼 참고하시길...
|