当前位置:主页>销售管理软件> 列表

DBGridEh怎样实现自动列宽? 找网络管理软件

仓库管理软件版1楼: -----------------------------------------------------
在DBGridEh.pas中有个procedure;OptimizeColsWidth(ColumnsList: TColumnsEhList);它是在protected中的,把它移动到public域,这样就在程序中就可以调用...
------------------------------------------------------
我试过以上方法不行!
主要是在程序中还是不能调用OptimizeColsWidth

2楼: 我也想知道! 如网络管理软件

3楼: FUNCTION BLK(GRID1:TDBGRIDEH):STRING;//表列宽
var
cc:integer;
i,tmpLength:integer;
objDataSet:TDataSet;
aDgCLength:array of integer;
begin
cc:=GRID1.Columns.Count-1;
objDataSet:=GRID1.DataSource.DataSet;
setlength(aDgCLength,cc+1);
//file://取标题字段的长度
for i:=0 to cc do
begin
aDgCLength[i]:= length(GRID1.Columns[i].Title.Caption);
end;
OBJDATASET.OPEN;
objDataSet.First;
while not objDataSet.Eof do
begin
//file://取列中每个字段的长度


for i:=0 to cc do
begin
tmpLength:=length(objDataSet.Fields.Fields[i].AsString);
if tmpLength>aDgCLength[i]
then aDgCLength[i]:=tmpLength;
end;
objDataSet.Next;
end;
for i:=0 to cc do
begin
GRID1.Columns[i].Width:=aDgCLength[i]*7;
end;
end;
////函数功能:自动调整表的列宽
//参数:一个DBGRIDEH.
/////////////////////////////////////
列宽最好提前指定,因为自动的东西数据多了速度就会慢

4楼: 下载EHLIB3。6c,已经实现了!

5楼: 请教xdd_pyx:3.6C版怎样实现?

6楼: 在DBGridEh.pas中有个procedure;OptimizeColsWidth(ColumnsList: TColumnsEhList);它是在protected中的,把它移动到public域,这样就在程序中就可以调用...兄弟你剛好只是對了一半:
其實你只要把OptimizeSelectedColsWidth()這個實現方法移到public區就搞定了,其它不變。但你必需得保存。不明得話qq:52745607聯系我。ok.我的3.15版就是這樣實現的。

仓库管理软件版7楼: Ehlib3.6c中设置PrintDBGridEh的option之pghRowAutostretch为true即可。

8楼: 重新编译,指定项目搜索路径后ok。感谢delphisuccess的协助!