前面的文章似乎被刪除了,但我和作者聯繫過,我還是將解答放出來
問題
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)