|
폼에 여러개의 이미지를 동적 생성한뒤, 마우스루 이 이미지중 하나를 선택함 선택한 이미지에 대한 정보를 가진 DB의 record루 이동하는 코드입니다.
선택한 이미지 번호는 ObjOrder에 입력됩니다. 제가 ObjOrder에 선택한 이미지 번호가 제대로 입력되는 것까지는 확인했는데 DB의 해당 위치론 가질않네여. 왜그럴까요? 정말 이상합니다.
그다지 깔끔한 소스는 아니지만 한번만 꼭 봐주십시요. 뭐가 문젠지 모르겠습니다.
//---------------------------------------------------------------------------
void __fastcall TnewMDIChild::ImageMouseDown(TObject * Sender, TMouseButton Button,
TShiftState Shift, int X, int Y){
GetCursorPos(&p);
if(newMainForm->gEditMode){
ClickedImage = (TImage*)Sender;
for(int i=1;i<ObjCnt[Ocount];i++)
if(Obj.X[i]==ClickedImage->Left && Obj.Y[i]==ClickedImage->Top) ObjOrder = i;
Table1->SetKey();
Table1->FieldByName("Object Count")->AsInteger=ObjOrder;
if(Table1->GotoKey()){
ShowMessage("OK");
Table1->Edit();
Table1->FieldByName("Object Count")->AsInteger=ObjOrder;
Table1->Post();
}
else ShowMessage("Fail");
if(Button==mbLeft){
imMouseDown = true;
oldx = p.x;
oldy = p.y;
ClickedImage->ControlStyle=ClickedImage->ControlStyle>>csOpaque;
}
} //if(newMainForm->gEditMode)
else return;
}
//---------------------------------------------------------------------------
void __fastcall TnewMDIChild::ImageMouseMove(TObject * Sender,
TShiftState Shift, int X, int Y)
{
GetCursorPos(&p);
if(newMainForm->gEditMode){
ClickedImage = (TImage*)Sender;
ClickedImage->Transparent = true;
ClickedImage->ControlStyle=ClickedImage->ControlStyle>>csOpaque;
if(imMouseDown) {
ClickedImage->Left += p.x - oldx;
ClickedImage->Top += p.y - oldy;
oldx = p.x;
oldy = p.y;
}
}
else return;
}
//---------------------------------------------------------------------------
void __fastcall TnewMDIChild::ImageMouseUp(TObject * Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(!newMainForm->gEditMode) return;
else{
if(Button==mbLeft) imMouseDown=false;
}
}
//---------------------------------------------------------------------------
|