看一下代码有什么问题.(查询结果出来以后,dbgrideh不是按照YSFGPL这个表的宽度和标题进行排列)
with unit2.Data.adoymsx do
begin
close;
sql.Clear;
sql.Add('select id as 序号,name as 项目名称,kjf as 可见否,width as 宽度 from YSFGPL');
open;
unit2.Data.adoymsx.First;
i:=0;
while not unit2.Data.adoymsx.Eof do
begin
i:=i;
edit1.text:=unit2.Data.adoymsx.FieldByName('可见否').Asstring;
kd:=unit2.Data.adoymsx.fieldbyname('宽度').AsInteger;
name:=unit2.Data.adoymsx.fieldbyname('项目名称').AsString; if edit1.text='False' then
begin
DBGridEh1.Columns[i].Title.Caption:=name;
DBGRIDEH1.Columns[i].Width:=0;
DBGRIDEH1.Columns[i].Visible:=false; end;
if edit1.text='True' then
begin
DBGridEh1.Columns[i].Title.Caption:=name;
DBGRIDEH1.Columns[i].Width:=kd;
end;
i:=i+1;
unit2.Data.adoymsx.Next;
end;
end;
with unit2.Data.adoymsx do
begin
close;
sql.Clear;
sql.Add('select id as 序号,name as 项目名称,kjf as 可见否,width as 宽度 from YSFGPL');
open;
unit2.Data.adoymsx.First;
i:=0;
while not unit2.Data.adoymsx.Eof do
begin
i:=i;
edit1.text:=unit2.Data.adoymsx.FieldByName('可见否').Asstring;
kd:=unit2.Data.adoymsx.fieldbyname('宽度').AsInteger;
name:=unit2.Data.adoymsx.fieldbyname('项目名称').AsString; if edit1.text='False' then
begin
DBGridEh1.Columns[i].Title.Caption:=name;
DBGRIDEH1.Columns[i].Width:=0;
DBGRIDEH1.Columns[i].Visible:=false; end;
if edit1.text='True' then
begin
DBGridEh1.Columns[i].Title.Caption:=name;
DBGRIDEH1.Columns[i].Width:=kd;
end;
i:=i+1;
unit2.Data.adoymsx.Next;
end;
end;
解决方案 »
- 关于delphi中的消息传送问题
- 用delphi做数据库查询问题
- Window media player和多声卡的问题!
- 一个普通的Delphi程序,在98/me/2000下都正常,在XP下就出错!!!
- 各位大哥小弟问个问题,就是能把toolbar放到PopupMenu中吗?弹出PopupMenu时显示toolbar的内容!
- 请问如何在edit控件中实现输入小数的功能,比如输入 0.187!
- 关于创建线程的问题
- 为什么我用作MDI应用程序时,总是不能创建子窗体?
- 寻找一篇文章,关于Delphi的。
- 怎样让一个窗口在显示了指定时间后才能关闭????
- 请问ServerSocket如何给指定客户发送数据
- 数据加工
程序是循环读取的,所以你的sql语句要加个排序才行: order by id
begin
***************//换一种方式算了,看者都麻烦
end;