|
안녕하세요? 개박살입니다..
답변이 모자랐군요.. ^^;
DrawGird에 그림을 뿌리는 걸 설명드리죠
DrawGird의 이벤트중에 OnDrawCell이라는 거 보이시죠? 그걸 더블클릭해서 함수를 작성하시는데,
void __fastcall TForm1::DrawGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
{
if (ACol > 0 && ARow > 0) {
Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
Bitmap1->LoadFromFile("C:\\test.bmp");
DrawGrid1->Canvas->Draw(Rect.Left, Rect.Top, Bitmap1);
delete Bitmap1;
}
}
이렇게 작성을 하시면, 각 Cell들이 그리질때마다 이 함수가 호출되어서 각 셀의 영역에다가
그림을 그리게 됩니다. C:\Test.bmp를 하나 만들어서 테스트 해보세요 그려진답니다.
글구 퍼즐프로그램은,
그림을 통째로 하나올려서 각 셀에 맞추어서 잘라서 그것들이 움직여야 하겠네요?
이건 예제가 넘 크네요 ^^; 참고로 말씀드리자면, 일단, 그림은 각셀뿐만아니라 그리드 전체에
그릴수가 있습니다.
폼의 OnShow에다가 위에 함수있죠? 그걸 이렇게 걸어보세요
Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
Bitmap1->LoadFromFile("C:\\test.bmp");
DrawGrid1->Canvas->Draw(0, 0, Bitmap1);
delete Bitmap1;
그리드의 0,0 좌표 즉, 그리드 전체에 본 그림이 나타나게 되죠?
이걸 이용해서 일단, 그리드전체에 그림을 뿌려주고, 그림들을 셀의 갯수만큼
각 셀의 영역 좌표로 잘라서 Stream 배열에 저장을 하세요
그래서 그 Stream을 각 셀의 위치에 따라서 그리드의 셀에다가 뿌려주면 되는거죠..
물론 제생각입니다. ^^;
참고로,,
프로그램은, 남이 짜논 소스를 카피해서 쓰면 절대!! 실력이 늘지 않습니다.
그렇다고 혼자 죽도록 파고들어서 고생할 필요도 없죠
방향만 도움을 받고, 그 구현은 직접 밤을 새워서 해보셔야 합니당~
실력있는 프로그래머치고, 그런경험이 많으면 많았지 적은 사람은 없을꺼예요
(물론 제가 잘한다는건 아닙니다 ^^; 저도 허접수준...)
그럼 성공하세요~~!
최효진 님이 쓰신 글 :
: 제 질문의 의도는 드리그그리드에서!!!
: 그림을 하나 하나씩 뿌리려고 하는데.... 밑에 처럼...하니깐... 안되더라군요!!!
: 드리그에..에서 캔버스로 연결하여...그림을 뿌리어더니..그림이 뿌려지긴 하는데..안보여요..어케해야 한는지... 그리고 그림을 여러개 자라려고 하는데...그런것두 안되더란군요... 그것좀 해결주세요...!!!
:
:
: Graphics::TBitmap *Bitmap1 = new Graphics::TBitmap();
: Bitmap1->LoadFromFile("C:\\Borland\\Borland Shared\\Imagesfactory.bmp");
: Canvas->Brush->Bitmap = Bitmap1;
: ????--> DrawGrid->Canvas->FillRect(Rect(0,0,100,100));
: delete Bitmap1;
:
:
: 참고로... 그림퍼즐을 작성할려고 합니당.... 조언 부탁드립니당....!!!!!!!!!!!
:
: 제주에서.....
:
:
:
:
:
:
:
:
|