dbgrid中的字段名如何居中?(50分)

  • 主题发起人 主题发起人 fhlong
  • 开始时间 开始时间
F

fhlong

Unregistered / Unconfirmed
GUEST, unregistred user!
使用QUERY动态改变SQL,如何使DBGRID显示的字段居中?
 
你的 dbgrid 中没有定义 column 吧, 把所有的字段加上就可以了
用 column 的属性控制了。
 
我的column是动态的,有全加上的功能吗?
 
不, dbgrid 的 column 是可供显示的,你的 query select 中的
字段会显示出来,而不是全部。

也许说的不对,只有个印象。
 
一个一个加:
for i := 0 to DBGrid1.Columns.Count - 1 do
DBGrid1.Columns.Title.Alignment := taCenter;
 
试试下面的
var i :integer;
begin
with dbgrid1 do begin
for i := 0 to columns.Count - 1 do
columns.Title.Alignment := taCenter;
 
用下面的方法增加Columns:
DBGrid1.Columns.Add;
 
column.count-1=0

column.add 有没有再好的办法?
 
最近我也遇到类似的问题,那就是怎样让显示在StringGrid上的FixedRows和FixedCols上的值可以居中显示?
 
Croco >>
DBGrid1.Columns.Add;
如果写select * 有办法吗?

SuperMMX >>
不, dbgrid 的 column 是可供显示的,你的 query select 中的字段会显示 出来,而不是全部。
我也认为是这样,但是不会做。
 
应该知道 Query 的列数。
对 select * from 试一试
for i := 0 to Query1.FieldCount - 1 do ...;
 
croco
>>
应该知道 Query 的列数。
对 select * from 试一试
for i := 0 to Query1.FieldCount - 1 do ...;

Query1.FieldCount - 1 =0
我已经试过,也是0
 
由 select * from atable where ... 知道表名是 atable
Table1.DatabaseName := Query1.DatabaseName;
Table1.TableName := 'atable';
for i := 0 Table1.FieldCount - 1 do ...;
哎,太麻烦了。不要用 select * 吧。
 
Re:
Query1.FieldCount - 1 =0
我已经试过,也是0

我试了下,对 select * 可以得到 Query1.FieldCount,
应注意:Query1.Active := True;
 
Croco
>>我想做的是通用查询 ,可以自己写SQL的那种,select * 都不行,怎么见人?(虽然现在还有好多问题)
 
要激活之后才可得列数。
select * 还是可以见人的啦。
 
Croco
>>谢谢你! Query1.FieldCount 可以得到字段数,是我疏忽,但是否还要
GetFieldNames 太复杂了吧!

 
呵呵,通用查询本来就复杂。
Query1.GetFieldNames(AStringList);是必要的。
另:如果是商业程序,出现在表头的不应该是英文字段名。
 
Croco
>>是商业程序(也许不算,不收money,主要练手),中文字段名是我的另一个难题,自己建库,可以用字典转换,但通用吗?还没想到(可能没法想到)

谢谢你的帮忙!!!
 
接受答案了.
 
后退
顶部