有没有这样的表控件?
1楼: grid
不需要数据感知
可以增加字符串,筛选字符串,查找字符串 字串7 2楼: stringgrid,自己控制,什么都可以 字串2 3楼: 有这样的例子吗?这个控件不是太懂
以前用 ehlib 这个就熟一点,呵可... 字串1 4楼: stringgrid,Delphi自带的。 字串3 5楼: 要去翻箱子
翻到了给你
字串1
6楼: //显示数据
procedure Tfrmqtsz.mygrid1;
var
i:integer;
begin
with stringgrid1 do
begin
cells[0,0]:=‘序号‘;
cells[1,0]:=‘ 信誉额度‘;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(‘Select * from xyed‘);
Open;
first;
for i:=1 to RecordCount do
begin
if not eof then
begin
with stringgrid1 do
begin
Cells[0,i]:=‘ ‘+inttostr(i);
Cells[1,i]:=trim(FieldByName(‘xyed‘).AsString);
end;
end;
Next;
end;
end;
end;
//保存数据
procedure Tfrmqtsz.mysavegrid1;
var
i:integer;
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(‘Delete from xyed‘);
ExecSQL;
end;
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(‘Select * from xyed‘);
Open;
end;
for i:=1 to StringGrid1.RowCount do
begin
with ADOQuery1 do
begin
if trim(stringgrid1.Cells[1,i])<>‘‘ then
begin
Append;
FieldByName(‘xyed‘).AsString:=trim(stringgrid1.Cells[1,i]);
Post;
end;
end;
end;
ADOQuery1.UpdateBatch();
end;
//其他控制
procedure Tfrmqtsz.StringGrid3KeyPress(Sender: TObject; var Key: Char);
var
ACol,ARow:integer;
begin
with stringgrid3 do //控制用户必须一行一行的输入数据
begin
ACol:=Selection.Left;
ARow:=Selection.Top;
if (ARow>2) and ((Cells[ColCount-1,ARow-1]=‘‘)or(Cells[ColCount-2,ARow-1]=‘‘)) then
begin
key:=#0;
end
else
if stringgrid3.Col=1 then//控制用户在第七、八、十一列必须输入数字
begin
if not(key in[‘0‘..‘9‘,#8,#13,‘.‘]) then
begin
Application.MessageBox(‘非法输入,请输入数字!‘,‘提示‘,Mb_IconInformation+Mb_Ok);
Abort;
end else
begin
if trim(stringgrid3.Cells[ACol,ARow])=‘‘ then
begin
if (key=‘.‘) then
key:=#0; //限制“.“不能在第一位
end else
if (Key=‘.‘) and (pos(‘.‘,stringgrid3.Cells[ACol,ARow])>0) then
key:=#0;
end;
end;
end;
end;
//比较早的了,只能用于数据量比较少的表(基础表之类的维护) 字串9 7楼: wwgrid 字串9
8楼: 如果我是没有数据库的呢?怎样做筛选呢? 如果我只是在 stringgrid 里面 add(‘1‘) add(‘2‘) add(‘1‘) 然后我只筛选1出来,然后也可以取消筛选,全部数据都显示出来 我曾经想过一个方法,就是每行检查一次字符,然后条件符合的话,把那一行高改为0 取消筛选就是把全部行距恢复一下字串6
9楼: 你数据没有保存在某个地方吗? 每次都让用户输入? 字串1 10楼: 是的,每次数据都需要输入,不需要保存字串2
11楼: 然后我只筛选1出来,然后也可以取消筛选,全部数据都显示出来 我曾经想过一个方法,就是每行检查一次字符,然后条件符合的话,把那一行高改为0 取消筛选就是把全部行距恢复一下 试试,可以的话就OK了字串6
上一篇:不知是不是dbExpress的BUG,请高手指点。 下一篇:关于UDP传输