大家帮我看下问题代码:运行出现错误“Menu inserted twice”,不知哪里冲突了

xinxin26 2010-02-25 11:00:14
大家帮我看下问题代码:编译时没有问题但运行时有一个菜单项N11Clic(Intermediary Device)这个按钮有问题,一点它无论是左边的树形结构菜单还是主菜单栏下的Intermediary Deviced的这个按钮,“Menu inserted twice”,现在我把有问题的代码贴出来大家帮我看一下哪里冲突了。


void __fastcall TForm1::N11Click(TObject *Sender)
{
TTreeNode *CurrNode;

for(int i=0; i<TreeView1->Items->Count; i++)
{
CurrNode = TreeView1->Items->Item[i];
if((CurrNode->Level == 1)&&(CurrNode->Text == "Intermediary Device"))
{
CurrNode->Selected = true;
}
}
}


if(Node->Text == "Intermediary Device")
{
Image1->Visible = false;
Label1->Visible = true;
Label3->Visible = true;
Label4->Visible = true;
Label5->Visible = true;
Label6->Visible = true;
Label7->Visible = true;
Label8->Visible = true;
Label9->Visible = true;
ToolBar2->Visible = true;
ToolButton10->Enabled = true;
ToolButton10->Caption = "Add";
ToolButton11->Enabled = true;
ToolButton12->Enabled = true;
ToolButton13->Enabled = true;
ComboBox1->Visible = true;
DBGrid1->Height = 417;
DBGrid1->Visible = true;
Label10->Visible = false;
Memo1->Visible = false;
Button1->Visible = false;
Button2->Visible = false;
Button3->Visible = false;
Button4->Visible = false;

PopupMenu1->Items->Clear();
for(i=0; i<8; i++)
{
NewItem[i] = new TMenuItem(PopupMenu1); // create the new item
PopupMenu1->Items->Add(NewItem[i]);
NewItem[i]->Caption = Mid_PopMenu[i];
NewItem[i]->Tag = i;
}
for(i=8; i<10; i++)
{
NewItem[i] = new TMenuItem(PopupMenu1); // create the new item
NewItem[7]->Add(NewItem[i]);
NewItem[i]->Caption = Mid_PopMenu[i];
NewItem[i]->Tag = i;
}
NewItem[0]->OnClick = ToolButton10Click; //增加
NewItem[1]->OnClick = ToolButton11Click; //删除
NewItem[2]->OnClick = ToolButton12Click; //修改
NewItem[3]->OnClick = N39Click; //查找
NewItem[4]->OnClick = PopPingClick; //测试连通
NewItem[5]->OnClick = PopAddrSetupClick; //地址设置
NewItem[6]->OnClick = PopICCardOperateClick; //IC卡操作
NewItem[7]->OnClick = NULL;//PopDoorResetPassClick; //复位密码
NewItem[8]->OnClick = PopDoorResetPass1Click; //复位工程密码
NewItem[9]->OnClick = PopDoorResetPass2Click; //复位开锁密码
DBGrid1->PopupMenu = PopupMenu1;

Label1->Caption = "Intermediary Device:";
Form1->ArrayType="TerminalType,Building,Unit,Storey,Room,TNum";
ComboBox1->Clear();
ComboBox1->Items->Add("All");
ComboBox1->Items->Add("Door Entrance Unit");
ComboBox1->Items->Add("Villa Door Entrance Unit");
ComboBox1->Items->Add("Community Entrance Unit");
ComboBox1->Items->Add("Management Server");
ComboBox1->ItemIndex = 0;
DBGrid1->Columns->Clear();
for(i=0; i<6; i++)
DBGrid1->Columns->Add();
for(i=0; i<6; i++)
{
DBGrid1->Columns->Items[i]->FieldName = Mid_FieldName[i];
DBGrid1->Columns->Items[i]->Title->Caption = Mid_Title[i];
DBGrid1->Columns->Items[i]->Alignment = taCenter;
DBGrid1->Columns->Items[i]->Title->Alignment = taCenter;
}
DBGrid1->DataSource = DataModule35->DataSource16;
DataModule35->Query6->Close();
DataModule35->Query6->SQL->Clear();
DataModule35->Query6->SQL->Add("Select " + CdtCol + " from cdtinfo");
DataModule35->Query6->SQL->Add(" where "+WhereCol2);
DataModule35->Query6->SQL->Add("order by "+Form1->ArrayType);
DataModule35->Query6->Parameters->ParamByName("ComputerNo")->Value=Form1->ComputerNo;
DataModule35->Query6->Open();
Mid_Records=DataModule35->Query6->RecordCount;
Label5->Caption = IntToStr(Mid_Records);
DataModule35->LoginQuery->Close();
DataModule35->LoginQuery->SQL->Clear();
DataModule35->LoginQuery->SQL->Add("Select CustNo from cdtinfo");
DataModule35->LoginQuery->SQL->Add(" where "+WhereCol2);
DataModule35->LoginQuery->SQL->Add("and LoginC = :cLoginC");
DataModule35->LoginQuery->Parameters->ParamByName("cLoginC")->Value=false;
DataModule35->LoginQuery->Parameters->ParamByName("ComputerNo")->Value=Form1->ComputerNo;
DataModule35->LoginQuery->Open();
Mid_NotConn = DataModule35->LoginQuery->RecordCount;
Label9->Caption=IntToStr(Mid_NotConn);
Label7->Caption=IntToStr(Mid_Records - Mid_NotConn);
return;
}
...全文
255 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinxin26 2010-03-31
  • 打赏
  • 举报
回复
这个问题是溢出的问题,在一个月前已经解决了,但是我太忙了忘了来结贴,不过还是要谢谢你!
hemiya 2010-03-25
  • 打赏
  • 举报
回复
上面的错了,这么改

/*
for(i=0; i<8; i++)
{
NewItem[i] = new TMenuItem(PopupMenu1); // create the new item
PopupMenu1->Items->Add(NewItem[i]);
NewItem[i]->Caption = Mid_PopMenu[i];
NewItem[i]->Tag = i;
}
for(i=8; i<10; i++)
{
NewItem[i] = new TMenuItem(PopupMenu1); // create the new item
NewItem[7]->Add(NewItem[i]);
NewItem[i]->Caption = Mid_PopMenu[i];
NewItem[i]->Tag = i;
}
*/
for(i=0; i<8; i++)
{
NewItem[i] = new TMenuItem(PopupMenu1); // create the new item
//PopupMenu1->Items->Add(NewItem[i]);
NewItem[i]->Caption = Mid_PopMenu[i];
NewItem[i]->Tag = i;
}
for(i=8; i<10; i++)
{
//NewItem[i] = new TMenuItem(PopupMenu1); // create the new item
NewItem[i] = new TMenuItem(NewItem[7]); // create the new subitem
//NewItem[7]->Add(NewItem[i]);
NewItem[i]->Caption = Mid_PopMenu[i];
NewItem[i]->Tag = i;
}
hemiya 2010-03-25
  • 打赏
  • 举报
回复

/* 源代码
for(i=8; i<10; i++)
{
NewItem[i] = new TMenuItem(PopupMenu1); // create the new item
NewItem[7]->Add(NewItem[i]);
NewItem[i]->Caption = Mid_PopMenu[i];
NewItem[i]->Tag = i;
}*/

// 改一下试试
for(i=8; i<10; i++)
{
NewItem[i] = new TMenuItem(NewItem[7]); // create the new subitem
NewItem[7]->Add(NewItem[i]);
NewItem[i]->Caption = Mid_PopMenu[i];
NewItem[i]->Tag = i;
}

hemiya 2010-03-25
  • 打赏
  • 举报
回复
在这中间贴代码



class ttt
{
public
ttt();
};
lose_forest 2010-03-25
  • 打赏
  • 举报
回复
设置断点 调试 查看
xinxin26 2010-02-25
  • 打赏
  • 举报
回复
哎电脑卡死了,我还以为发送不出去又点了一次结果居然有两条,如果版主看到了就删掉一条吧。下面把出错时的对话框的贴出来,还有一个问题,为什么我明明有使用插入C/C++源代码然后再贴上源代码结果出来还是全黑的效果,为什么都不能出现像妖哥贴程序的那种效果。

13,825

社区成员

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

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