線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3745
推到 Plurk!
推到 Facebook!

請問BCB動態產生物件的事件控制?謝謝

答題得分者是:RaynorPao
kagaya
中階會員


發表:74
回覆:175
積分:59
註冊:2002-12-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-28 10:38:06 IP:210.85.xxx.xxx 未訂閱
各位前輩好.我是新手 想練習做個踩地雷的小遊戲 遇到一個問題想請教一下.目前原碼如下 動態產生物件的事件控制.我會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]);     //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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-28 11:15:15 IP:61.228.xxx.xxx 未訂閱
在 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-28 11:15:21 IP:203.73.xxx.xxx 未訂閱
引言: 各位前輩好.我是新手 想練習做個踩地雷的小遊戲 遇到一個問題想請教一下.目前原碼如下 動態產生物件的事件控制.我會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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-28 12:13:46 IP:210.85.xxx.xxx 未訂閱
謝謝FrederickPau大大及RaynorPao大大 終於成功了 謝謝~_~
------
KUSO 無處不在
系統時間:2017-10-24 13:48:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!