一个关于指针定义的基础问题
以前多次看到帖子里有这样的回复,没怎么引起重视也没做相关笔记,现在用起来的时候居然发现不知道搜索关键字了:
比如有个指针TEdit *edtData3,即指针名称后面跟的是个数字,现在有个需求就是我知道后面的这个数字,如何获取这个控件的指针呢?其他控件是不是也是这么一个格式来根据指针名称后面的数字来获取指针,比如TImage控件,TShape控件等。
[解决办法]
名字前缀是不是固定的,如果固定,可以FindComponent
FindComponent("edt"+String(i));
看cb的官方例子
const int EditBoxCount = 20;const int LeftCoordinate = 10;TForm1 *Form1;TEdit* pe[20];void __fastcall TForm1::FormCreate(TObject *Sender){ const char* pszNamePrefix = "MyEdit"; for (int i=0;i<EditBoxCount;i++) { pe[i] = new TEdit(this); pe[i]->Name = pszNamePrefix + IntToStr(i+1); pe[i]->Left = LeftCoordinate; pe[i]->Top = i*EditBoxCount; pe[i]->Parent = this; } delete pszNamePrefix;}void __fastcall TForm1::FormDestroy(TObject *Sender){ for (int i=0;i<EditBoxCount;i++) delete pe[i];}
[解决办法]
String str = "edtData3"; // 已知的名字
TEdit *edit = (TEdit *)(FindComponent(str));