掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
stringgridで、プログラム側から、点灯してるセルの位置を変更するには (ID:35688)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
皆さんありがとうございます、昨日無事解決しました。 今引っ越し中で家にネット回線が繋がってないので、返信遅れました。 Dさんありがとうございます、 ご指摘の箇所ですが、試行錯誤中の時のを載せてしまったみたいです^^; 列の一番端を「→」で点滅させて、代わりにカーソルを白くしようとしたときに書いたの一部を乗せてしまいました^^; つぎはぎできちんと処理を理解せず変更を繰り返してるので、自分でも半分パニクってます^^; 既に解決してしまいましたが、機会があったら、 Dさんの処理方法も参考にしてみたいと思います。 自分の覚え間違いと記述ミスで、 igyさんとTSさんのご指摘通りでした。 igyさんとTSさん、GT-BASSさん、Dさん、改めてありがとうございます。 RowCountを +1しても、Rowは変わらないのですね。 Rowをきちんと+1して、GT-BASSさんがご指摘した、 StringGrid1.Refresh;したら、正常描画されました。 if gdFocused in State then にもしてみたのですが、 マウスやキーボード入力でカーソルを移したときと、次項ボタンで移動したときで色を区分けする事が出来て、 便利に仕上がりました。 皆さんありがとうございます、 とても助かりましたm(__)m。 以下変更したコードです。 procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer; Rect: TRect; State: TGridDrawState); begin if gdFocused in State then begin StringGrid1.canvas.Brush.Color := clAqua; StringGrid1.Canvas.FillRect(rect); StringGrid1.Canvas.Font.Color := clBlack; drawtext(StringGrid1.canvas.Handle, PChar(StringGrid1.cells[col,row]), Length(StringGrid1.cells[col,row]), rect,DT_LEFT); end; //・・・省略 end; procedure TForm1.Button4Click(Sender: TObject); begin//次項ボタン //…省略 StringGrid1.RowCount := StringGrid1.RowCount + 1; StringGrid1.Row := StringGrid1.Row + 1; x1 := StringGrid1.Col; y1 := StringGrid1.Row; StringGrid1.Refresh; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.