16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"StringGrid上のセルにボタンを置く"
この発言に対し以下のコメントが寄せられています
#00492 凛 さん RE:StringGrid上のセルにボタンを置く
StringGrid上にボタンを置きます。スクロールしても付いてきます。
nifty:FDELPHI/MES/11/3460のツリーを参考にしました。
なぜかClickイベントは利きません。(間にStringGridのMouseDownがかんでいる
からか?)
OnDrawCellで隣のセル描画の時も含むようにしているのは、もし自分の乗ってい
るセル描画の時だけにInvakidateを限定すると見えないところから見えるところ
へスクロールインしてきたとき消す作業が省かれちゃうからです。
var
BLoc:TPoint;
procedure TForm1.FormCreate(Sender: TObject);
begin
BLoc:=Point(4,4);
with button1 do
begin
Parent:=Stringgrid1;
BoundsRect :=StringGrid1.CellRect(BLoc.X,Bloc.Y);
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ABS(Col-BLoc.X)<=1) or (ABS(Row-BLoc.Y)<=1) then
begin
with button1 do
begin
BoundsRect :=StringGrid1.CellRect(BLoc.X,Bloc.Y);
invalidate;
end;
end;
end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
stringGrid1.Cells[1,1]:=FormatDateTime('HH:NN:SS',now);
end;
☆☆☆ サンプル蔵ブラウザUp!see nifty:FDELPHI/LIB/5/116 ☆☆☆
98/04/11(土) 11:29 凛(MXB01744)
Original document by 凛 氏 ID:(MXB01744)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|