請問BCB動態產生物件的事件控制?謝謝 |
答題得分者是:RaynorPao
|
kagaya
中階會員 發表:74 回覆:175 積分:59 註冊:2002-12-28 發送簡訊給我 |
各位前輩好.我是新手
想練習做個踩地雷的小遊戲
遇到一個問題想請教一下.目前原碼如下
動態產生物件的事件控制.我會Delphi的
但BCB轉不過來....
謝謝
//--------------------------------------------------------------------------- #include < stdio.h > #include < vcl.h > #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; TPanel *box1[10][10]; //放炸彈的紐 int bomb[10][10]; //炸彈是1.沒有是0 int bnum=0; //炸彈數 int bclick(TObject *Sender); //按下後執行這函式 //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { randomize(); for(int i=0;i<10;i ){ for(int j=0;j<10;j ){ box1[i][j]=new TPanel(this); box1[i][j]->Parent=Form1; box1[i][j]->Width=20; box1[i][j]->Height=20; box1[i][j]->Left=box1[i][j]->Width*i; box1[i][j]->Top=box1[i][j]->Height*j; box1[i][j]->Show(); box1[i][j]->bclcik(&box1[i][j]); //onclick事件 // box1[i][j]->Caption=IntToStr(bomb[i][j]); } } Form1->Width=box1[0][0]->Width*12; Form1->Height=box1[0][0]->Height*13; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose) { for(int i=0;i<10;i ){ for(int j=0;j<10;j ){ delete box1[i][j]; } } } //--------------------------------------------------------------------------- void __fastcall TForm1::N3Click(TObject *Sender) { this->Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::N1Click(TObject *Sender) { //按開始新遊戲執行這裡 for(int i=0;i<10;i ){ for(int j=0;j<10;j ){ bomb[i][j]=0; } } for(int i=0;i<10;i ){ bomb[(rand() 1)][(rand() 1)]=1; } bnum=0; for(int i=0;i<10;i ){ for(int j=0;j<10;j ){ // box1[i][j]->Caption=IntToStr(bomb[i][j]); if(bomb[i][j]==1)bnum ; } } Form1->Caption="踩地雷(目前有個" IntToStr(bnum) "地雷)"; } //--------------------------------------------------------------------------- int bclick(TObject *Sender){ //不知該怎麼設事件? //TPanel(Sender)-> }=============================================================== kagaya 您好: 先跟您說聲抱歉!修改您的文章,見到您的程式碼有掉Code的現象,幫您做些許的修改! > 發表人 -
------
KUSO 無處不在 |
FrederickPau
資深會員 發表:4 回覆:161 積分:268 註冊:2002-11-04 發送簡訊給我 |
在 Unit1.h 裡, 宣告
__published: // IDE-managed Components
void __fastcall bClick(TObject *Sender); Unit1.cpp 裡,
int bclick(TObject *Sender); //按下後執行這函式
這行宣告不要了 然後在下面的程式裡
void __fastcall TForm1::FormCreate(TObject *Sender)
{
...
box1[i][j]->bclcik;
...
} void __fastcall TForm1::bClick(TObject *Sender)
{
...
} 這樣應該就可以做到你要的了 ...
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 各位前輩好.我是新手 想練習做個踩地雷的小遊戲 遇到一個問題想請教一下.目前原碼如下 動態產生物件的事件控制.我會Delphi的 但BCB轉不過來.... 謝謝kagaya 你好: 請參考以下範例程式碼的做法 < class="code"> // Unit1.h class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // User declarations TButton *btn; public: // User declarations __fastcall TForm1(TComponent* Owner); void __fastcall XXXClick(TObject *Sender); }; // Unit1.cpp void __fastcall TForm1::Button1Click(TObject *Sender) { btn=new TButton(this); btn->Parent=this; btn->Caption="XXX Button"; btn->Left=10; btn->Top=10; btn->Width=100; btn->Height=100; btn->XXXClick; } //--------------------------------------------------------------------------- void __fastcall TForm1::XXXClick(TObject *Sender) { ShowMessage("XXXClick"); } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
kagaya
中階會員 發表:74 回覆:175 積分:59 註冊:2002-12-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |