数据库有两个字段id和name,用dbgrid或者其他控件实现以下功能:
1:把id和name字段的数据让单行显示底色为白色,双行的显示为浅灰色.
2:让某一列的数字为1时显示为字符"字符1" 为2时显示为"字符2",(
这是故意增加难度,如id为001,显示字符为:字符oo1).
3:允许数据网格进行多选, 然后将全部选中的行的信息都保存到一个文本文件中去.
各位大侠帮忙,在先等.
1:把id和name字段的数据让单行显示底色为白色,双行的显示为浅灰色.
2:让某一列的数字为1时显示为字符"字符1" 为2时显示为"字符2",(
这是故意增加难度,如id为001,显示字符为:字符oo1).
3:允许数据网格进行多选, 然后将全部选中的行的信息都保存到一个文本文件中去.
各位大侠帮忙,在先等.
至于1显示为001 ,可以使用Format('%.3d',[1])
with DBGrid1 do
begin
if ((State = [gdSelected]) or (State=[gdSelected,gdFocused])) then
begin
Canvas.Font.Color :=ClYellow;
Canvas.Brush.Color :=ClNavy;
end
else
begin
if DataSource1.DataSet.RecNo mod 2<>0 then {判断行是奇数还是偶数行}
Canvas.brush.Color :=ClWhite {奇数行背景以白色显示}
else
Canvas.brush.Color :=$00BFC873; {偶数行背景以浅蓝色显示}
end;
DefaultDrawColumnCell(Rect, DataCol, Column, State); {绘出背景}
end;
这是故意增加难度,如id为001,显示字符为:字符oo1).如果速度不是很慢可以用计算字段,
如果用的是SQL Sever ,id为int类型时 用SQL语句,
select ('字符'+ cast(id as varchar(12))) as id from table就可以了.
i:integer;
tmpBookMark:TBookMark; with Grid,table do
begin
DisableControls;
for i:=0 to Grid.SelectedRows.Count-1 do //从选中的数据移动
begin
table .Book:=Grid.SelectedRows.Items[i];
tmpBookMark :=GetBook;
// do something here : 行的信息都保存到一个文本文件中去
GotoBook(tmpBookMark);
end;
EnableControls;
end;