名前 題名 ▼ takiさん > ▼ おかぽんさん > > ありがとうございます。 > > > セルの移動前に、移動先のセルの値を書き換えるので、 > > > キャレット(カーソル)があるセルに対してコードで文字を書き込むとループします。 > > には、あてはまらないと思います。 > > > > Delphi 5 のコードですけど、参考になれば幸いです。 > > Delphi XE4 では > > procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; > var CanSelect: Boolean); > begin > //列が0から1へ移動しようとしており、同一行であるかの判定 > if (StringGrid1.Col = 0) and (ACol = 1) and > (StringGrid1.Row = ARow) then begin > //商品コードから商品名を取得し入力 > StringGrid1.Cells[1, ARow] := DBmodoki(StringGrid1.Cells[0, ARow]); > //ここではセル移動を行わない > CanSelect := False; > //数量列に移動 > StringGrid1.Col := 2; > end; > end; > > で正常(かつ理想通り)に動くことを確認しました。 > > OnSelectCellイベントはグリッド内のセルが選択される前に発生します。 > CanSelect パラメータを false に設定すると,セルを選択できなくすることができます。 > > 地雷を踏む前に検知してフタをして飛び越えたらいいんですね。なるほど。 > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link