お世話になっております。
今Delphi2007にてアプリケーションを作成しているのですが、StringGrid上で数値制御及びボタン、チェックボックスの表示がしたいのですが、上手くいきません。
MOStringGridというのがいいらしい(?)のですが、ダウンロードするところが見当たりません(過去ログなど見ていますが、ページがなくなっています)
やりたいことはStringGridでボタン、チェックボックスを使用したいのですが、出来るだけ簡単に(?)出来るものがあればと思うのですが。・・
どなたかこれがいいよというような参考になるページなどありましたらご教授願いたいのですが・・・
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
ありがとうございます。
やってみます
解決にチェックしわすれました
すでに解決済みですが、MOStringGrid
>MOStringGridというのがいいらしい(?)のですが、
>ダウンロードするとこ>ろが見当たりません(過去ログ
>など見ていますが、ページがなくなっています)
下記の記事のアドレスで今ダウンロートできました。
https://www.petitmonte.com/bbs/answers?question_id=3815
ツイート | ![]() |