帮助 TGrid
Helps with TGrid
我是 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 的良好文档,请告诉我。英语不是我的母语,但我会尽力而为。
您可以找到 TGrid
documentation on Embarcadero's DocWiki。查看 'Methods' 页面,了解如何在 TGrid
中插入和删除元素。有两种方法可以帮助您:InsertComponent()
和 `InsertObject().
此外,在您的 Grid1GetValue()
和 Grid1SetValue()
方法中,您使用的是 switch
语句。在所有这些情况下,您都在做同样的工作:
Value = A[Col][Row];break;
因此,您可以简单地调用一次 Value = A[Col][Row];
而不是使用 switch
,它会产生相同的结果。
希望我的回答能对您有所帮助。至少我回答了我从你的问题中理解的内容。
我是 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 的良好文档,请告诉我。英语不是我的母语,但我会尽力而为。
您可以找到 TGrid
documentation on Embarcadero's DocWiki。查看 'Methods' 页面,了解如何在 TGrid
中插入和删除元素。有两种方法可以帮助您:InsertComponent()
和 `InsertObject().
此外,在您的 Grid1GetValue()
和 Grid1SetValue()
方法中,您使用的是 switch
语句。在所有这些情况下,您都在做同样的工作:
Value = A[Col][Row];break;
因此,您可以简单地调用一次 Value = A[Col][Row];
而不是使用 switch
,它会产生相同的结果。
希望我的回答能对您有所帮助。至少我回答了我从你的问题中理解的内容。