使StringGrid中的一列具有Check功能

2021-05-25 00:10:52 字數 2624 閱讀 5776

procedure ttermset.stringgrid1drawcell(sender: tobject; acol,

arow: integer; rect: trect; state: tgriddrawstate);

begin

if acol=0 then

begin

if arow=0 then

begin

with tstringgrid(sender).canvas do

begin

fillrect(rect);

if stringgrid1.cells[acol,arow]='yes' then

begin

textout(rect.left +2, rect.top+5, '序號');

draw( (rect.right + rect.left - fcheck.width) *2 div 3, (rect.bottom + rect.top - fcheck.height) div 2, fcheck )

endelse

begin

textout(rect.left +2, rect.top+5, '序號');

draw( (rect.right + rect.left - fcheck.width)*2 div 3, (rect.bottom + rect.top - fcheck.height) div 2, fnocheck );

end;

end;

exit;

end;

with tstringgrid(sender).canvas do

begin

fillrect(rect);

if stringgrid1.cells[acol,arow]='yes' then

begin

textout(rect.left +2, rect.top+5, inttostr(arow));

draw( (rect.right + rect.left - fcheck.width) *2 div 3, (rect.bottom + rect.top - fcheck.height) div 2, fcheck )

endelse

begin

textout(rect.left +2, rect.top+5, inttostr(arow));

draw( (rect.right + rect.left - fcheck.width)*2 div 3, (rect.bottom + rect.top - fcheck.height) div 2, fnocheck );

end;

end;

end;

end;

procedure tform1.strngrd1mouseup(sender: tobject; button: tmousebutton;

shift: tshiftstate; x, y: integer);

varncol, nrow:integer;

i:integer;

g_ptselect:tpoint;

begin

if(button = mbright) then// 在stringgrid上右點鍵

begin

// 選中當前選中的單元格:

strngrd1.mousetocell(x, y, ncol, nrow);

// 如果在第一行或第一列,或者不在單元格中,則不處理

if (ncol =0) and (nrow>0) then

begin

strngrd1.col := 1;

strngrd1.row := 1;

// 記錄下當前的滑鼠位置,因為在選單彈出以後,滑鼠選擇選單時座標會改變

g_ptselect := mouse.cursorpos;

// 彈出選單

pm1.popup(mouse.cursorpos.x, mouse.cursorpos.y);

end;

exit;

end;

strngrd1.mousetocell(x, y, ncol, nrow);

if ncol=0 then

begin

if nrow=0 then

begin

//      strngrd1.col:=1;

//      strngrd1.row:=1;

if strngrd1.cells[ncol,nrow]='yes' then

for i:=0 to strngrd1.rowcount do

begin

strngrd1.cells[ncol,i]:='no'

endelse

for i:=0 to strngrd1.rowcount do

begin

strngrd1.cells[ncol,i]:='yes';

end;

endelse

if strngrd1.cells[ncol,nrow]='yes' then

strngrd1.cells[ncol,nrow]:='no'

else

strngrd1.cells[ncol,nrow]:='yes';

end;

end;

MySql中增加一列

如果想在乙個已經建好的表中新增一列,可以用諸如 alter table table name add column new column name varchar 20 not null 這條語句會向已有的表中加入新的一列,這一列在表的最後一列位置。如果我們希望新增在指定的一列,可以用 alter ...

MySql中增加一列

如果想在乙個已經建好的表中新增一列,可以用諸如 alter table table name add column new column name varchar 20 not null 這條語句會向已有的表中加入新的一列,這一列在表的最後一列位置。如果我們希望新增在指定的一列,可以用 alter ...

MySql中增加一列

如果想在乙個已經建好的表中新增一列,可以用諸如 alter table table name add column new column name varchar 20 not null 這條語句會向已有的表中加入新的一列,這一列在表的最後一列位置。如果我們希望新增在指定的一列,可以用 alter ...