Я новичок в C ++ Builder и мне действительно нужна помощь. В моей работе мы должны использовать C ++ Builder, и я не могу найти много документации по этому поводу.
То, что я хочу сделать, это вставить новую строку с некоторыми данными в каждом столбце каждый раз, когда пользователь нажимает Вставить ключ. Всего в моей 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
документация на Embarcadero’s DocWiki. Посмотрите на страницу «Методы», чтобы понять, как вставлять и удалять элементы в вашем TGrid
, Есть два метода, которые могут вам помочь: InsertComponent()
и `InsertObject ().
Кроме того, в вашем Grid1GetValue()
а также Grid1SetValue()
методы, вы используете switch
заявление. Во всех этих случаях вы делаете одну и ту же работу:
Value = A[Col][Row];break;
Таким образом, вместо использования switch
Вы можете просто позвонить один раз Value = A[Col][Row];
и это сделает тот же результат.
Я надеюсь, что мой ответ может помочь вам. По крайней мере, я ответил на то, что понял из вашего вопроса.
Других решений пока нет …