有關動態產生圖片 然後拖拉圖片的問題 |
|
bome2002
一般會員 發表:11 回覆:9 積分:4 註冊:2005-11-04 發送簡訊給我 |
我有一問題請教一下各位大大們
我需要動態產生10個image 在 gropBox1內,橫向排列 之後需要拖拉圖片至另一處,並記錄X,Y值給Label->Caption 顯示 請教大大們 我應該如何完成後續的動作ㄋ String PictureName =a.bmp; int left = 20; for(int i=0 ; i< 10 ;i ) { TImage *tmpImage = new TImage(groupBox1); tmpImage->Parent = groupBox1; tmpImage->Picture->LoadFromFile(ExtractFilePath("Application.ExeName") PictureName); tmpImage->Left =left; tmpImage->Stretch = true ; tmpImage->ShowHint = true; left =40; } |
justdo
高階會員 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
我建議寫個類別繼承TImage,修改如下:
.h 檔,在TForm1之前,加入 TMyImage 宣告 class TMyImage : public TImage { private: bool m_bMouseDown; public: __fastcall virtual TMyImage(Classes::TComponent* AOwner):TImage(AOwner) { m_bMouseDown=false; } ... other functions ... }; TForm1 的 private 區加入 void __fastcall MyImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); void __fastcall MyImageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall MyImageMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y); TMyImage* myImages[10]; .cpp 檔開始實作上述三個函式,例如MyImageMouseDown void __fastcall TForm1::MyImageMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { TMyImage* myImage=reinterpret_cast< TMyImage* >(Sender); if (myImage != NULL) { 對 myImage 物件,記錄狀態為滑鼠按下 } } MyImageMouseMove 函式,則實作滑鼠移動時(假若為滑鼠按下的狀態),一起移動TMyImage物件 並且將X Y 座標寫出來 MyImageMouseUp 函式,取消滑鼠按下的狀態 產生元件時,改寫為: //for i=0 to 9 TMyImage* myImage= new TMyImage(this); myImage->Parent = this; myImage->MyImageMouseDown; myImage->MyImageMouseMove; myImage->MyImageMouseUp; ... myImages[i]=myImage; |
bome2002
一般會員 發表:11 回覆:9 積分:4 註冊:2005-11-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |