如何在stringgrid中加入checkbox与edit控件(50分)

  • 主题发起人 主题发起人 lizee2008
  • 开始时间 开始时间
L

lizee2008

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:stringgrid用来显示搜索数据结果,但我想在stringgrid的第一列中加入checkbox,在最后一列中加edit,并要随着搜索结果记录数而变化.
 
我想你要用dbgrideh应该能解决
 
我在网上搜了一下,发现dbgrideh都是要在数据库建一个bit字段,而我只是想在界面上用于控制
 
请高手帮忙呀
 
用 parent 画上去
 
那你就加个字段呗,而且那个控件直接就可以实现计算行数和求和了
 
1.可以用控件浮动.在GRID控件上浮动控件.
2.从CUSTOMGRID继承,实现他的那些功能.
 
to luoyanqing119
我也想用你的方法,但是不知怎么弄,能否举个例子给点代码
 
有没有人帮忙提供段代码:我在网上找到的代码,可不知道当我需要对是否勾选作判断时怎么处理,
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TForm1 = class(TForm)
Grid: TStringGrid;
procedure GridDrawCell(Sender: TObject;
ACol, ARow: Integer;
Rect: TRect;
State: TGridDrawState);
procedure GridClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
fcheck,fnocheck:tbitmap;

implementation
{$R *.dfm}
procedure TForm1.GridDrawCell(Sender: TObject;
ACol, ARow: Integer;
Rect: TRect;
State: TGridDrawState);
begin
if not (gdFixed in State) then

with TStringGrid(Sender).Canvas do

begin

brush.Color:=clWindow;
FillRect(Rect);
if Grid.Cells[ACol,ARow]='yes' then

Draw( (rect.right + rect.left - FCheck.width) div 2, (rect.bottom + rect.top - FCheck.height) div 2, FCheck )
else

Draw( (rect.right + rect.left - FCheck.width) div 2, (rect.bottom + rect.top - FCheck.height) div 2, FNoCheck );

end;

end;

procedure TForm1.GridClick(Sender: TObject);
begin
if grid.Cells[grid.col,grid.row]='yes' then

grid.Cells[grid.col,grid.row]:='no'
else
grid.Cells[grid.col,grid.row]:='yes';
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i:SmallInt;

bmp:TBitmap;

begin

FCheck:= TBitmap.Create;

FNoCheck:= TBitmap.Create;

bmp:= TBitmap.create;

try
bmp.handle := LoadBitmap( 0, PChar(OBM_CHECKBOXES ));

With FNoCheck do
begin

width := bmp.width div 4;

height := bmp.height div 3;

canvas.copyrect( canvas.cliprect, bmp.canvas, canvas.cliprect );

end;

With FCheck do
begin

width := bmp.width div 4;

height := bmp.height div 3;

canvas.copyrect(canvas.cliprect, bmp.canvas, rect( width, 0, 2*width, height ));

end;

finally
bmp.free
end;


end;

end.
 
做浮动很简单的,通过对齐栅格和CHECKBOX的位置.-------
 
谢谢各位
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部