掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StringGridの編集を制御するには (ID:28930)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
単純な質問かもしれませんが、思うように制御できないのでご教授下さい。 グリッド内の、3列目をダブルクリックしたとき、中の文字列を変更し、 場合によっては、編集不可にしたくて、下記のようなソースを書きました。 グリッド内の他の列は編集可能だったり編集不可だったりと、 処理を変える予定ですが、 他の列は、すべて編集可能で、 3列目をクリックした後は、すべての列が編集不可能になってしまいます。 なぜか分からないので教えてください。 まだプログラムを始めたばかりで、単純なミスなのかもしれませんが、 どなたか、よろしくお願い致します。 uses ・・・・・・・ resourcestring NOT_PRT_WORD = '印刷しない'; PRT_WORD = '印刷する'; NOT_WORD = '設定不要'; procedure TForm1.StringGrid1DblClick(Sender: TObject); var ACol : Integer; ARow : Integer; Text : String; begin with StringGrid1 do begin //3列目 設定不要だったら→編集不可、印刷する⇔印刷しないを変える処理 if StringGrid1.Col = 3 then begin if StringGrid1.Cells[3,StringGrid1.Row] = NOT_WORD then begin StringGrid1.Options := StringGrid1.Options - [goEditing]; end else begin ACol := StringGrid1.Col; ARow := StringGrid1.Row; Text := StringGrid1.Cells[ACol,ARow]; if Text = PRT_WORD then begin StringGrid1.Cells[ACol,ARow] := NOT_PRT_WORD; StringGrid1.Options := StringGrid1.Options - [goEditing]; end; if Text = NOT_PRT_WORD then begin StringGrid1.Cells[ACol,ARow] := PRT_WORD; StringGrid1.Options := StringGrid1.Options - [goEditing]; end; end; end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.