我是C ++ Builder的新手,真的需要一些帮助。在我的工作中,我们必须使用C ++ Builder,但我找不到很多关于它的文档。
我想要做的是每次用户按 Insert 键时在每列中插入一个包含一些数据的新行。我的TGrid共有20行:1 TCheckColumn
和19 TStringColumn
。
我不知道该怎么做。首先,这是当有人输入插入密钥时我已编写的代码:
void __fastcall TForm2::Grid1KeyDown(TObject *Sender, WORD &Key, System::WideChar &KeyChar,
TShiftState Shift)
{
switch(Key)
{
case VK_INSERT:
if(Grid1->RowCount>MAXTask){}else
{
Label1->Text = "number Task: "+IntToStr(++nmbertask);
Grid1->RowCount++;
}
break;
}
}
以下是Grid1GetValue()
和Grid1SetValue()
代码:
void __fastcall TForm2::Grid1GetValue(TObject *Sender, const int Col, const int Row,
TValue &Value)
{
switch(Col)
{
case 0:
Value = A[Col][Row]; break;
case 1:
Value = A[Col][Row]; break;
case 2:
Value = A[Col][Row]; break;
case 3:
Value = A[Col][Row]; break;
case 4:
Value = A[Col][Row]; break;
case 5:
Value = A[Col][Row]; break;
case 6:
Value = A[Col][Row]; break;
case 7:
Value = A[Col][Row]; break;
case 8:
Value = A[Col][Row]; break;
case 9:
Value = A[Col][Row];break;
case 10:
Value = A[Col][Row];break;
case 11:
Value = A[Col][Row];break;
case 12:
Value = A[Col][Row];break;
case 13:
Value = A[Col][Row];break;
case 14:
Value = A[Col][Row];break;
case 15:
Value = A[Col][Row];break;
case 16:
Value = A[Col][Row];break;
case 17:
Value = A[Col][Row];break;
case 18:
Value = A[Col][Row]; break;
case 19:
Value = A[Col][Row];break;
}
}
void __fastcall TForm2::Grid1SetValue(TObject *Sender, const int Col, const int Row,
const TValue &Value)
{
switch(Col)
{
case 0:
A[Col][Row] = Value; break;
case 1:
A[Col][Row] = Value; break;
case 2:
A[Col][Row] = Value; break;
case 3:
A[Col][Row] = Value; break;
case 4:
A[Col][Row] = Value; break;
case 5:
A[Col][Row] = Value; break;
case 6:
A[Col][Row] = Value; break;
case 7:
A[Col][Row] = Value; break;
case 8:
A[Col][Row] = Value; break;
case 9:
A[Col][Row] = Value; break;
case 10:
A[Col][Row] = Value; break;
case 11:
A[Col][Row] = Value; break;
case 12:
A[Col][Row] = Value; break;
case 13:
A[Col][Row] = Value; break;
case 14:
A[Col][Row] = Value; break;
case 15:
A[Col][Row] = Value; break;
case 16:
A[Col][Row] = Value; break;
case 17:
A[Col][Row] = Value; break;
case 18:
A[Col][Row] = Value; break;
case 19:
A[Col][Row] = Value; break;
}
}
这是我到目前为止所做的。我从未在C ++ Builder中开发过,所以你能帮帮我吗?我并不是在寻找一个书面解决方案,我真的在寻找一个寻找解决方案的指示。
如果我不清楚,请注明,以便我提供更多信息。如果你有一个很好的网站,有很好的C ++ Builder文档,请告诉我。英语不是我的母语,但我会尽我所能。
答案 0 :(得分:0)
您可以在TGrid
documentation上找到Embarcadero's DocWiki。查看“方法”页面,了解如何在TGrid
中插入和删除元素。有两种方法可以帮助您:InsertComponent()
和`InsertObject()。
此外,在您的Grid1GetValue()
和Grid1SetValue()
方法中,您使用的是switch
语句。在所有这些情况下,你都在做同样的工作:
Value = A[Col][Row];break;
因此,您可以简单地拨打switch
一次,而不是使用Value = A[Col][Row];
,它会做同样的结果。
我希望我的回答可以帮到你。至少我回答了你从你的问题中理解的内容。