0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

C++builderでTstringGridの行追加と行削除の例

Last updated at Posted at 2015-04-23

行の追加はTStringListの値を使ってみる。
もちろん列数と同じ数でないとダメ。

FireMonkey.h
///FunctionInsert(対象のグリッド,追記する行の値, 差し込む行番号)
void __fastcall FunctionInsert(TStringGrid *var_string_grid,
	TStringList *var_input_data, int var_row = 0);
FireMonkey.cpp
void __fastcall TForm1::FunctionInsert(TStringGrid *var_string_grid,
	TStringList *var_input_data, int var_row) {
	/// 行列の数を確認。
	if (var_string_grid->ColumnCount != var_input_data->Count) {
		ShowMessage(L"列数と配列が一致しません。");
		return;
	}
	///行を増やす
	var_string_grid->RowCount = var_string_grid->RowCount + 1;
	///行をずらす
	for (int i = var_string_grid->RowCount - 1; i > var_row; i--) {
		for (int i2 = 0; i2 < var_string_grid->ColumnCount; i2++) {
			var_string_grid->Cells[i2][i] = var_string_grid->Cells[i2][i - 1];
		}
	}
	///挿入行にデータを入れる
	for (int i2 = 0; i2 < var_string_grid->ColumnCount; i2++) {
		var_string_grid->Cells[i2][var_row] = var_input_data->Strings[i2];
	}
}

行削除は、現在選択中の行を削除する方法で。

FireMonkey.h
void __fastcall FunctionDelete(TStringGrid *var_string_grid);
FireMonkey.cpp
void __fastcall TForm1::FunctionDelete(TStringGrid *var_string_grid) {
	///選択が無ければ終了
	if (var_string_grid->Selected == -1) {
		return;
	}
	///確認
	if (MessageDlg(L"本当に削除しますか?", TMsgDlgType::mtWarning,
		TMsgDlgButtons() << TMsgDlgBtn::mbOK << TMsgDlgBtn::mbCancel, 0) != 1) {
		return;
	}
	///選択中の行を削除する感じ。
	int var_row = var_string_grid->Selected;
	///削除の前に選択を解除する。
	var_string_grid->Selected = -1;
	///削除というか、行を押しつぶす感じ
	for (int i = var_row; i < var_string_grid->RowCount - 1; i++) {
		for (int i2 = 0; i2 < var_string_grid->ColumnCount; i2++) {
			var_string_grid->Cells[i2][i] = var_string_grid->Cells[i2][i + 1];
		}
	}
	///行の数を変更
	var_string_grid->RowCount = var_string_grid->RowCount - 1;
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?