菜鸟问题,很容易得分

abcddcba 2004-12-09 02:11:36
BCB6下编程,Form上有4个TEdit组件Edit0,Edit1,Edit2,Edit3,还有一个TListBox组件List,List上有4个Item,需要根据List上Item选择情况,判断目前应该使用哪个Edit。

TEdit*Edit[4]={Edit0,Edit1,Edit2,Edit3};
TEdit* CurrentPosition;//目前选择的TEdit组件
for(int i=0;i<4;i++)
if (List->Selected[i] ==true)
{ CurrentPosition=Edit[i];
CurrentPosition->SetFocus();
}
编译时通过,但是程序运行时出错

另外,如何判断光标现在在哪个Edit上呢?
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
勉励前行 2004-12-09
  • 打赏
  • 举报
回复
String(ListBox1->ItemIndex)) //這裡要判斷ListBox1->ItemIndex是否為-1 。否則容易產生異常。
勉励前行 2004-12-09
  • 打赏
  • 举报
回复
TEdit *&Edit[4]={&Edit0,&Edit1,&Edit2,&Edit3};
TEdit* CurrentPosition;//目前选择的TEdit组件
for(int i=0;i<4;i++)
if (List->Selected[i] ==true)
{ CurrentPosition=Edit[i];
CurrentPosition->SetFocus();
}
試下吧。原因是你原來的代碼使用了野指針。
ccrun.com 2004-12-09
  • 打赏
  • 举报
回复
to abcddcba(求不得):

那就在Form2中,用这个:

((TEdit *)Form1->FindComponent("Edit" +
String(ListBox1->ItemIndex)))->SetFocus();
fkeumtdh 2004-12-09
  • 打赏
  • 举报
回复
学习
abcddcba 2004-12-09
  • 打赏
  • 举报
回复
to ccrun
请问如果我要在另外一个Form2中用FindComponent找Form1中的组件呢?
samchoy 2004-12-09
  • 打赏
  • 举报
回复
同意 ccrun(老妖)(www.ccrun.com) ( ) 信誉:122

稍微改一下:
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
((TEdit *)FindComponent("Edit" +
String(ListBox1->ItemIndex)))->SetFocus();
}
kmfangxun 2004-12-09
  • 打赏
  • 举报
回复

TEdit*Edit[4]={Edit0,Edit1,Edit2,Edit3};
TEdit* CurrentPosition;//目前选择的TEdit组件
for(int i=0;i<4;i++)
if (List->Selected[i])
{
CurrentPosition=Edit[i];
CurrentPosition->SetFocus();
}

// 上面运行没有出错
 

 //如何判断光标现在在哪个Edit上

TEdit * actEdit=dynamic_cast<TEdit*>(this->ActiveControl);

if( actEdit)
{
ShowMessage("Active TEdit is "+actEdit->Name);
}
chiengod 2004-12-09
  • 打赏
  • 举报
回复
int i;
for( i=0;i<4;i++)
if (ListBox1->Selected[i] ==true)
{
if(i==0)Edit0->SetFocus();
else if(i==1)Edit1->SetFocus();
else if(i==2)Edit2->SetFocus();
else Edit3->SetFocus();
}
ccrun.com 2004-12-09
  • 打赏
  • 举报
回复
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
((TEdit *)FindComponent("Edit" +
String(ListBox1->ItemIndex)))->Text = "是我";
}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧