帮助TGrid

时间:2016-04-16 11:56:21

标签: c++ c++builder 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文档,请告诉我。英语不是我的母语,但我会尽我所能。

1 个答案:

答案 0 :(得分:0)

您可以在TGrid documentation上找到Embarcadero's DocWiki。查看“方法”页面,了解如何在TGrid中插入和删除元素。有两种方法可以帮助您:InsertComponent()和`InsertObject()。

此外,在您的Grid1GetValue()Grid1SetValue()方法中,您使用的是switch语句。在所有这些情况下,你都在做同样的工作:

Value = A[Col][Row];break;

因此,您可以简单地拨打switch一次,而不是使用Value = A[Col][Row];,它会做同样的结果。

我希望我的回答可以帮到你。至少我回答了你从你的问题中理解的内容。