掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MOStringGrid (ID:30871)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi7ですがTStringGridにチェックボックスを表示しています。 参考になれば(参考にしたURLは探し出せなかったです)。 procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var DRect: TRect; Mode: Integer; begin //塗りつぶし TStringGrid(Sender).Canvas.FillRect(Rect); DRect.Top := Rect.Top + 2; DRect.Left := Rect.Left + 2; DRect.Right := Rect.Right - 2; DRect.Bottom := Rect.Bottom - 2; if Not((ARow = 0) or (ACol = 0))then begin //チェックボックス表示 if TStringGrid(Sender).Cells[ACol, ARow] <> NULL then begin if (TStringGrid(Sender).Cells[ACol, ARow] = '1') then begin Windows.DrawFrameControl(TStringGrid(Sender).Canvas.Handle, DRect, DFC_BUTTON, DFCS_BUTTONCHECK + DFCS_CHECKED); end else begin Windows.DrawFrameControl(TStringGrid(Sender).Canvas.Handle, DRect, DFC_BUTTON, DFCS_BUTTONCHECK); end; end else begin Windows.DrawFrameControl(TStringGrid(Sender).Canvas.Handle, DRect, DFC_BUTTON, DFCS_BUTTONCHECK + DFCS_INACTIVE); end; end; end; procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var ACol, ARow: Integer; begin if Button = mbLeft then begin TStringGrid(Sender).MouseToCell(X, Y, ACol, ARow); if Not((ACol < 1) or (ARow < 1) ) then begin if TStringGrid(Sender).Cells[ACol, ARow] <> '1' then begin TStringGrid(Sender).Cells[ACol, ARow] := '1'; end else begin TStringGrid(Sender).Cells[ACol, ARow] := ' '; end; end; end; end; おそらくDrawFrameControlを使えばボタンも出来るかも。 http://msdn.microsoft.com/ja-jp/library/cc428492.aspx
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.