私はC++ Builderの問題に取り組んでいます。私は会社のためのタスク管理ソフトウェアを作成する必要がありますが、私はいくつかの概念に問題があります。私の最初の問題はシンプルな問題ですが、エラーは表示されません。私のフォームで TStringGridとInsertキー
は、私が修正TStringGrid
ある
TrStringGrid
を、持っている、と私は、ユーザーがキーボード上
挿入キーをクリックするたびに、新しい行が自動的に入力されていることを望みます。
アプリは2行でTStringGrid
で始まり、1行は固定されていて変更できず、2行目は空です。
これは、次のようになります。
ユーザーががキーを挿入押す初めて、私は2番目の行(灰色でない行が)に充填することにしたいです。ユーザーがのキーを2回目以降に押すと、新しい行を追加して自動的に入力する必要があります。
私はそれを動作させることができません、私はそれが正しい方法でやっているかどうかわかりません。
//method called each time a key is pressed
void __fastcall TForm1::rStringGridEd1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
int counter = 1;
switch(Key)
{
case VK_INSERT: //VK_INSERT for the insert button
if(counter < 2)
{
for (int i = 0;i< rStringGridEd1->RowCount; i++) {
rStringGridEd1->Cells[0][i] = "a";
rStringGridEd1->Cells[1][i] = "b";
rStringGridEd1->Cells[2][i] = "c";
rStringGridEd1->Cells[3][i] = "d";
rStringGridEd1->Cells[4][i] = "e";
counter++;
}
}
if(counter >= 2){
for (int i = 0;i< rStringGridEd1->RowCount; i++) {
rStringGridEd1->RowCount++; // this is used to add a row
rStringGridEd1->Cells[0][i] = "a";
rStringGridEd1->Cells[1][i] = "b";
rStringGridEd1->Cells[2][i] = "c";
rStringGridEd1->Cells[3][i] = "d";
rStringGridEd1->Cells[4][i] = "e";
counter++;
}
}
}
}
あなたの問題とは関係ありませんが、 'calulatenewdate'関数では変数' tmp'は必要ありません。 'data'を値渡しするので、すべての変更は関数内のローカル変数で行われます。 –
こんにちは、これらの3つの問題を3つの問題に分割することをお勧めします。 – Stefan
私はそれをやるだろう、私はそれがより簡単だろうと思った – Lazarius