看板 C_and_CPP 關於我們 聯絡資訊
前面的文章似乎被刪除了,但我和作者聯繫過,我還是將解答放出來 問題 edit 只要key 0~9以外的,都會變成edit都不顯示 edit可能會有很多, 如果每一個都寫一樣的內容, 管理不易 我有試用元件copy方式,但它不會跟vb6一樣會出edit1[1],edit1[2],陣列方式 所以不曉得怎麼減化程式 BCB不會複製貼上就變成物件陣列,那是VB6才會如此 方法就如同這篇一樣,迴圈動態產生TEdit http://ktop.no-ip.org/topic.asp?TOPIC_ID=34958 //--------------------------------------------------------------------------- void __fastcall TForm1::MyKeyPress(TObject *Sender, char &Key) { //按到哪個Edit Application->MessageBox(IntToStr(((TEdit *)Sender)->Tag).c_str(),MB_OK); //在這裡統一將要擋掉的key排除掉 if ((Key <'0' || Key>'9') && (Key != VK_BACK)) { Key=NULL; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { //動態產生9個Edit int index; for(int i=0;i<3;i++) {for(int j=0;j<3;j++) {index=i*3+j; Edit[index]=new TEdit(this); Edit[index]->Parent=Form1; Edit[index]->Width=60; Edit[index]->Left=(25+90*j); Edit[index]->Top=(20+90*i); //全部的鍵盤按下事件都指定給MyKeyPress處理 Edit[index]->OnKeyPress=MyKeyPress; Edit[index]->Tag=index; } } } 若要只能輸入數字的話可以google到很多更好的方法 http://tinyurl.com/l2tx7ve 範例檔案下載 https://dl.dropboxusercontent.com/u/23455489/102.08.03.rar -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.164.73.151 ※ 編輯: bugmens 來自: 1.164.73.151 (08/03 14:33) ※ 編輯: bugmens 來自: 1.164.73.151 (08/03 14:35)