掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Gridのクリックを無効にするには (ID:42812)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
通りすがり様からご教授いただいたソースを 下記のように一部変更したことで理想の結果が得られました。 たいへん勉強になりました。 どうもありがとうございます。 procedure TForm1.FormCreate(Sender: TObject); begin FGridWindowProc := StringGrid1.WindowProc; StringGrid1.WindowProc := NewGridWindowProc; end; procedure TForm1.FormDestroy(Sender: TObject); begin StringGrid1.WindowProc := FGridWindowProc; end; procedure TForm1.NewGridWindowProc(var Message: TMessage); var cp: TPoint; gc: TGridCoord; begin if (Message.Msg = WM_LBUTTONDOWN) or (Message.Msg = WM_LBUTTONUP) then begin GetCursorPos(cp); cp := StringGrid1.ScreenToClient(cp); StringGrid1.MouseToCell(cp.X, cp.Y, gc.X, gc.Y); end else begin FGridWindowProc(Message); end; end; procedure TForm1.Button1Click(Sender: TObject); var ColIdx, RowIdx: Integer; begin RowIdx := StringGrid1.Row; ColIdx := StringGrid1.Col; StringGrid1.Cells[ColIdx, RowIdx] := 'A'; if RowIdx < 5 then begin Inc(RowIdx); end else begin Inc(ColIdx); RowIdx := 0; end; StringGrid1.Row := RowIdx; StringGrid1.Col := ColIdx; end; -------ソースここまで------- deldel様 プログラムで何とか制御しようかと模索していましたが 求めていた結果はまさにこれでした! こんな使い方があるのですね。 勉強になりましたありがとうございます。 これで解決とさせていただきます。 皆様ありがとうございました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.