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

How to create EditBox using operator new

尚未結案
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-23 19:49:17 IP:219.93.xxx.xxx 未訂閱
Hi, May i ask you all how to create EditBox using new operator. I have written some code, but the compiler show error. My  code is as follow int i,j; TEdit **pe;          for(i=0;i<20;i ) for(j=0;j<20;j ) { pe[i][j]=new TEdit(this); pe[i][j]->Parent=this; ..... } May i know where are the wrong code and how to fix it? Thank you......
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-23 20:38:08 IP:221.169.xxx.xxx 未訂閱
因為你還沒配置記憶體空間給 pe 就直接用 pe[i][j] 寫入,會寫到不合法的記憶體空間    依據你的需求:pe需要為二維的結構、同時需要儲存TEdit的指標時 你需要宣告 TEdit ***pe; (要宣告成 TEdit **pe; 也行啦,不過要new新物件時要用另外一種寫法..) 完整code如下
int i, j;
TEdit ***pe;
//配置記憶體
pe = new TEdit** [20];
for (i=0, i<20;   i)
  pe[i]=new TEdit*[20];
//產生新的TEdit物件
...
//使用
...
//歸還記憶體空間
for (i=0, i<20;   i)
  delete [] pe[i];
delete [] pe;
用關鍵字「動態」搜尋一下本站,可以找到很多相關文章
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-23 20:51:53 IP:219.93.xxx.xxx 未訂閱
thanks for your reply    i will try it
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-27 11:15:28 IP:161.139.xxx.xxx 未訂閱
i have tried it, but  error occur when i try to create something like this int row,col; row=10; col=5; TEdit ***pe; pe=new TEdit**[row]; for(i=0;icol but when row
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-29 15:09:56 IP:61.66.xxx.xxx 未訂閱
try this...   
int i,j;
TEdit *pe[20][20];    for(i=0;i<20;i  )
for(j=0;j<20;j  )
{
pe[i][j]=new TEdit(this);
pe[i][j]->Parent=this;
....
}
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-29 21:56:28 IP:60.49.xxx.xxx 未訂閱
i have tried it, but when row>col, error will occur.why? can anyone tell me? here is the code i wrote... //..... row=10; col=5; TEdit ***pe; pe=new TEdit**[row]; for(i=0;iParent=this; ... }
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-30 00:19:46 IP:61.59.xxx.xxx 未訂閱
 
int row =10;
int col =10;
int i,j;    TEdit *pe[row][col];
for(i=0;iParent=this;
    ....
  }    
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-31 22:18:49 IP:221.169.xxx.xxx 未訂閱
chgtauhan: 您沒有發現貼出來的程式碼都亂掉了嗎?這樣別人無法瞭解你的問題到底出在哪裡,請先看看版規 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=58991
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-08-01 09:50:57 IP:161.139.xxx.xxx 未訂閱
i'm so sorry for the typing error.Here is my problem    //............................................................................... row=10; col=5; TEdit ***pe; pe=new TEdit**[row]; for(i=0;iParent=this; ... } //......................................................................................... when col>row; it runs perfectly, but when row>col, error like access violation occur. Can anyone tell me why???
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-08-01 09:54:38 IP:161.139.xxx.xxx 未訂閱
i''m so sorry for the typing error.Here is my problem    //.............................................................................. row=10; col=5; TEdit ***pe; pe=new TEdit**[row]; for(i=0;iParent=this; ... } //....................................................................................... when col>row; it runs perfectly, but when row>col, error like access violation occur. Can anyone tell me why???
 
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-08-01 09:59:01 IP:161.139.xxx.xxx 未訂閱
[quote] i''m so sorry for the typing error.Here is my problem    //..............................................................................
 
row=10;
col=5;
TEdit ***pe;
pe=new TEdit**[row];    for(i=0;iParent=this;
...
}
//....................................................................................... when col>row; it runs perfectly, but when row>col, error like access violation occur. Can anyone tell me why???
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#12 引用回覆 回覆 發表時間:2005-08-01 19:40:09 IP:221.169.xxx.xxx 未訂閱
for(i=0;i
這裡的pe[j]裡面的j寫錯了吧     
        
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#13 引用回覆 回覆 發表時間:2005-08-02 09:33:48 IP:161.139.xxx.xxx 未訂閱
[quote] hoho,sorry ya, error typing........but even if i correct it, same problem occur too,why?    //..............................................................................  
 
int i;
row=10;
col=5;
TEdit ***pe;
pe=new TEdit**[row];    for(i=0;iParent=this;
...
}    
//.......................................................................................
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#14 引用回覆 回覆 發表時間:2005-08-02 18:59:44 IP:221.169.xxx.xxx 未訂閱
我光執行以上的code並不會有任何問題... 你執行時,是哪一行出錯?
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#15 引用回覆 回覆 發表時間:2005-08-02 20:02:06 IP:219.93.xxx.xxx 未訂閱
i also no idea which code error, it shows a message that access violation ,...... Address error..... i have no idea at all. who can help me....?????????????
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#16 引用回覆 回覆 發表時間:2005-08-02 22:13:07 IP:221.169.xxx.xxx 未訂閱
秀出error message的時候,同時間BCB的IDE視窗會顯示目前執行到哪一行的程式碼,這一行就是出錯的地方 要不然你把完整的程式碼放上來好了...
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#17 引用回覆 回覆 發表時間:2005-08-03 13:52:09 IP:61.66.xxx.xxx 未訂閱
     int i,j;
int row=10;
int col=5;
TEdit ***pe;
pe=new TEdit**[row];    for(i=0;i<row;i  )
  pe[i]=new TEdit*[col];    for(i=0;iParent=this;      }
chgtauhan
一般會員


發表:10
回覆:21
積分:6
註冊:2005-07-23

發送簡訊給我
#18 引用回覆 回覆 發表時間:2005-08-05 19:37:09 IP:218.111.xxx.xxx 未訂閱
thanks to bass15 i got the solution. thanks you very much i enclosed here the correct answer.  
int i,j,row, col;
row=5;
col=4;
TEdit ***pe;
pe=new TEdit**[row];
for(i=0;iParent=this;
...
}
thanks to everyone who have helped me....:)
系統時間:2024-05-09 12:08:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!