如何让一列数据在dbgrid中总是显示在最前面

zhylin 2004-12-23 07:56:23
在dbgrid中,如何让一列数据总是显示在最前面,也就是表格的第一列,因为有很多数据要录入,所以希望第一列总是显示在窗口
...全文
280 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
JonnySun 2004-12-24
  • 打赏
  • 举报
回复
將下面這行代碼刪除
if FromIndex=0 then Exit;//如果移動自己則退出
JonnySun 2004-12-24
  • 打赏
  • 举报
回复
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

procedure TForm1.DBGrid1ColumnMoved(Sender: TObject; FromIndex,
ToIndex: Integer);
function GetColumn(const aFieldName: string): TColumn;
var
I: integer;
begin
Result := nil;
for I := 0 to TDBGrid(Sender).Columns.Count - 1 do
if TDBGrid(Sender).Columns[I].FieldName = aFieldName then
begin
Result := TDBGrid(Sender).Columns[I];
end;
end;
begin
if FromIndex=0 then Exit;//如果移動自己則退出
GetColumn('BankCode').Index := 0; //將自己始終放在第一列
end;

'BankCode'改成你要放在最前一列的字段名
todouwang 2004-12-24
  • 打赏
  • 举报
回复
哦,这个问题楼主搜索一下,好像看过
wenjianyao 2004-12-24
  • 打赏
  • 举报
回复
哈哈,大家都误解了搂主的意思
搂住的意思是如果很多列的话,拖动水平滚动条向后移动的时候,可能就很难分辨到底是属于哪一条记录的信息,希望能拖动的时候,某一列(用来分辨其他行的数据的那个字段,如编号)能始终显示
longtusoft 2004-12-24
  • 打赏
  • 举报
回复
zzlazio 2004-12-24
  • 打赏
  • 举报
回复
需要列在第一的就第一个Select啊
ssq237712 2004-12-24
  • 打赏
  • 举报
回复
to 回复人: DingYangHui(造物者) ( ) 信誉:100 :
你平常就这么写?你们机器的配置估计都是服务器的配置。
SampsonDyh 2004-12-24
  • 打赏
  • 举报
回复
同意 DingYangHui(造物者)
孤独独笑 2004-12-24
  • 打赏
  • 举报
回复
不要用Delphi自带的DBGrid
用个第三方控件,很容易实现的
如:DBGridEh有个FrozenCols属性,想固定几列就固定几列
DingYangHui 2004-12-24
  • 打赏
  • 举报
回复
很简单:
首先定义一个自动编号的字段(或者说递增字段)
然后在录入新记录之后,做一次 Select * from 表名 Order by 递增字段 Desc
OK 了
这样每次新录入的记录总是第一列,并且之后面录入的也安步就位了 哈哈 ^_^
JonnySun 2004-12-24
  • 打赏
  • 举报
回复
pilicat(delphi迷)的方法可行的!我以前也這樣做過.

這是種欺騙行為,放兩個DBGrid(A,B)
A和B對齊, 將A顯示第一列字段,B顯示其它字段.

chinaandys 2004-12-24
  • 打赏
  • 举报
回复
曾经俺也问过些类问题,最终得不到解决,最后俺只能用临时表了:

1.写一个存储程,用来创建临时表
2.添加数据时,连接这个临时表
3.添加临时表所有数据到目的表
4.删除临时表
zsp0010 2004-12-24
  • 打赏
  • 举报
回复
關注!
ssq237712 2004-12-23
  • 打赏
  • 举报
回复
意思是把第一列作为固定列,不随着滚动条滚动?
这个用3方控件要方便一些,DEVEXPRESS的cxgrid好象可以实现。 DBGRID也可以实现:TStringGrid(DBGrid1).FixedCols := 2;不过界面看最好重绘一下。
bmwyc 2004-12-23
  • 打赏
  • 举报
回复
“第一列总是显示在窗口”到底是什么意思呢?!
bmwyc 2004-12-23
  • 打赏
  • 举报
回复
感觉楼主说得不是很清楚,若只是想把第一列显示在前面的话,按照楼上说的就OK了
但是你所说的录入很多数据并不会影响列的位置的变化啊?!
…………
第一列总是显示在窗口"
LLanguage 2004-12-23
  • 打赏
  • 举报
回复
在adoquery1的sql属性里写
select 第一列,第二列,第三列 from 表
或者如下代码:
adoquery1.active:=false;
adoquery1.sql.clear;
adoquery1.sql.add('select 第一列,第二列,第三列 from 表');
adoqueyr1.active:=true;

不要 select * from 表
zhangheaaa 2004-12-23
  • 打赏
  • 举报
回复
应该比较容易实现,

双击table(query),在出现的fields list中,右键选择add all fields,

添加所有的字段,然后移动你需要的字段的位置在最前面,

或者双击dbgrid,在字段列显示里,第一列固定的选择你要提前的字段。
pilicat 2004-12-23
  • 打赏
  • 举报
回复
用两个DBGrid来实现吧!

左边的一个显示你所需要一直显示的列,另一个显示其它信息。


大量电脑书籍下载:
http://www.netyi.net/in.asp?id=ForMoreU

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧