はじめまして。
いつも拝見させていただいております。
Delphiをやり始めて2ヶ月の初心者です。
初歩的な質問かと思いますが、ご教授いただきたく、投稿しました。
よろしくお願い致します。
環境はDelphi7、WindowsXPです。
内容は、TStringGridの1列目に関してなのですが、
ここに入れる項目は、設定不要・設定する・設定しない、のどれかが必ず入るようになっています。
設定不要と書いてある場合は、編集不可。
設定する・設定しないと書いてある場合は、編集可能で、
かつ、そのセルをダブルクリックするたびに、
設定する・設定しないが、交互に入れ替わるようにしたいです。
resourcestring
NOT_PRT_WORD = '設定しない';
PRT_WORD = '設定する';
NOT_WORD = '設定不要';
procedure TForm1.TStringGrid1DblClick(Sender: TObject);
begin
with TStringGrid1 do begin
if Col = 1 then begin
if TStringGrid1.Cells[1,Row] := NOT_WORD then begin
TStringGrid1.Options := TStringGrid1.Options - [goEditing];
end else begin
PRT_WORD := not PRT_WORD; //ここでエラーが出ます
NOT_PRT_WORD := not NOT_PRT_WORD; //ここもエラーが出ます
end;
end;
end;
end;
どなたか、方法をご存知の方がいらっしゃいましたら、
ご教授いただけないでしょうか?
よろしくお願い致します。
切り替え自体は下記のようにすれば出来ますが、
var
ACol,ARow : Integer;
Text : String;
begin
ACol := StringGrid1.Col;
ARow := StringGrid1.Row;
Text := StringGrid1.Cells[ACol,ARow];
if Text = '設定する' then
begin
StringGrid1.Cells[ACol,ARow] := '設定しない';
end;
if Text = '設定しない' then
begin
StringGrid1.Cells[ACol,ARow] := '設定する';
end;
end;
編集可能と言うのは 設定する、設定しない を表示している場所
を編集可能にすると言う事ですか?
オプションの [goEditing] は全体に対してなので部分制御は出来ません
編集可能だとして 何かしら編集し、3つの言葉以外が入れられた場合に
ダブルクリックした場合にはどうするのでしょうか?
ありがとうございました。
今、Grid内の細かな処理に四苦八苦しているので、
またよろしくお願い致します。
>編集可能と言うのは 設定する、設定しない を表示している場所
>を編集可能にすると言う事ですか?
こちらについては、ダブルクリックで表示内容を切り替えるに当たって、
編集を可能にする必要があると思い込んでいました。
余計な文面で分かりにくくなってしまい、申し訳ございません。
ツイート | ![]() |