Помогает с 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, пожалуйста, укажите его мне. Английский не мой родной язык, но я сделаю все возможное.


person Laz22434    schedule 16.04.2016    source источник


Ответы (1)


Вы можете найти TGrid документацию на Документальная вики Embarcadero. Посмотрите страницу «Методы», чтобы узнать, как вставлять и удалять элементы в файле TGrid. Есть два метода, которые могут вам помочь: InsertComponent() и `InsertObject().

Кроме того, в ваших методах Grid1GetValue() и Grid1SetValue() вы используете оператор switch. Во всех этих случаях вы выполняете одну и ту же работу:

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

Таким образом, вместо использования switch вы можете просто вызвать один раз Value = A[Col][Row];, и он даст тот же результат.

Я надеюсь, что мой ответ поможет вам. По крайней мере, я ответил то, что понял из вашего вопроса.

person Developer    schedule 16.04.2016