巧用DBGrid控件的Sort属性实现“点击标题栏自动排序功能”。(改进版本)

TDBGridEh控件的使用 <br />TDBGrid是是Ehlib组件包中一个功能非常强大的组件,我在这里总结一下常用的使用技巧:<br />1、增加合计<br />(1)、属性设置<br />FooterRowCount 设置为 1 ;<br />sumlist->Active 设置为 true ;<br />(2)、增加合计函数:<br />void AddSumField(TDBGridEh *AGrid,AnsiString AField)<br />{<br />    for(int i=0;i<AGrid->Colum 阅读详情

曾看见优快云文档中有介绍到:通过ADOQuery或其它数据集组件的Sort属性配合DBGrid的OnTitleClick事件,可以方便地实现此功能。因为Sort属性可以让活动数据集按指定的字段进行排序,也可以选择排序方式(升序/降序)。这个功能的确很实用。(http://blog.youkuaiyun.com/jlee084/archive/2004/12/20/223284.aspx)。我改进了一下这功能,在单击标题后分别在标题加上三角(▲)和倒三角形(▼)表示当前排序方式为升序和降序;写成一个函数可以方便重复使用:

function TitleSort(DBGrid:TDBGrid;ADOQuery:TADOQuery;Column: TColumn):Boolean;
var
  i,ii:Integer;
  cStr:
string;
  c:TColumn;
begin
    
for ii:=0 to DBGrid.Columns.Count-1 do
    
begin
      c:=DBGrid.Columns[ii];
      cStr:=c.Title.Caption;
      
if (pos('▲',cStr)=1) or (pos('▼',cStr)=1) then
      
begin
        Delete(cStr,1,2);
        c.Title.Caption:=cStr;
      
end;
    
end;

    
for i:= 1 to DBGrid.Columns.Count do
    
begin
      
//恢复所有标题字体为默认
      DBGrid.Columns[i-1].Title.Font.Color := clWindowText;
      DBGrid.Columns[i-1].Title.Font.Style := [];
    
end;
    
if ADOQuery.Sort<>(Column.FieldName+' ASC') then  //判断原排序方式
    
begin
      ADOQuery.Sort := Column.FieldName+
' ASC';
      Column.Title.Font.Style := [fsBold];
      Column.Title.Caption:=
'▲'+Column.Title.Caption; //标题加上三角形表示当前排序方式为升序;
    
end
    
else
    
begin
      ADOQuery.Sort := Column.FieldName+
' DESC';
      Column.Title.Font.Style := [fsBold];
      Column.Title.Caption:=
'▼'+Column.Title.Caption;  //标题加上倒三角形表示当前排序方式为降序;
    
end;
end;

调用时:
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
   TitleSort(DBGrid1,ADOQuery1,Column);
end;

delphi DBGrid_添加点击排序功能 dbgrid 添加点击字段名自动排序功能,注意空数据时候需要加入判断。 立即下载

相关推荐

delphi DBGrid排序的两种方法(自己代码中,测试成功的)

在delphi有些第三方控件确实有自带的排序功能,可是对于原始的DBGrid控件不存在自动排序功能,下面是两种不同显示的排序方法。我自己写成函数,可以调用。(自己程序中测试成功的)

DBGrid点击标题栏实现自动排序功能

通过ADOQuery控件的Sort属性,配合DBGrid的OnTitleClick事件,可以方便地实现此功能。Sort属性可以让活动数据集按指定的字段进行排序,与SQL语句Order后面的写法一样(升序ASC/降序DESC)。 Form1; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource1: TDataSource;...

weixin_44823889的博客 517

架构决策之消息中间件MQ系列六-Pulsar

一、架构

恰恰虎的博客 7253

DBGrid排序

给DBGrid加入排序功能在实际数据库管理系统中,用户对表中数据的操作,最频繁的莫过于浏览查询了,而查询中若能提供为某字段建立的排序功能,则非常有利于用户对“关键数据”的了解。 Windows的用户都知道,在“我的电脑”或“资源管理器”中打开任一文件夹,若以“详细资料”方式查看,系统会显示出该文件夹下的子文件夹和文件相关信息,如:名称、类型 、大小、修改时间,用户只需要单击标题栏中的相应项,则系统

softworkman的专栏 2518

chmod: changing permissions of `/u01/app/oracle/product/11.2.0/dbhome_1/bin/extjobO‘: Operation not

oracle 11.2.0.4安装psu 29141056,日志末尾抛出报错 Patching component oracle.ctx, 11.2.0.4.0... Applying sub-patch '29141056' to OH '/u01/app/oracle/product/11.2.0/dbhome_1' Patching component oracle.rdbms, 11.2.0.4.0... Patching component oracle.rdbms.rman, 11.2.0.

m0_37625564的博客 1833

数字IC设计——功耗分析

功耗是数字IC芯片的一个重要指标

知识,既贵,又便宜。 9362

巧用DBGrid控件的Sort属性实现“点击标题栏自动排序功能

巧用DBGrid控件的Sort属性实现“点击标题栏自动排序功能 很多朋友在使用DBGrid控件时,抱怨没有点击标题栏便可自动排序的功能,实际上通过ADOQuery或其它数据集组件的Sort属性配合DBGrid的OnTitleClick事件,可以方便地实现此功能。因为Sort属性可以让活动数据集按指定的字段进行排序,也可以选择排序方式(升序/降序),所以我们只要在OnTitleClick事件中设

fyl_077的专栏 997

PADS Layout新手必看:从元件摆放到地线处理的10个实用技巧

本文为PADS Layout新手提供了10个实用技巧,涵盖元件摆放、地线处理等关键环节。从功能模块化布局到高频信号处理,再到电磁兼容性设计,帮助初学者快速掌握PCB设计核心技能,提升Layout效率和质量。特别适合需要优化PADS Layout工作流程的设计师参考。

stone的博客 254

php ado query sort,如何使adoquery排序正常工作

我只是一个adoquery,当我尝试adoquery1.sort := 'Cost';它不会对查询中的项目进行排序。{Gets starting cards and put them into the correct rows}//***************************************************************************procedure...

weixin_39996096的博客 296

ESP8266 进行HDLC解码,AX.25,APRS

/************************************************************** 函数名:aprs_wait_begin() 参 数:无 返回值:bool true=得到合法脉冲,false=未得到 说 明:等待第1个833us高脉冲,判断范围 730-930,其他忽略 ***************************************************************/ bool aprs_wait_begin(){ stati

蓝蓝的博客 1628

LVGL 蜂巢气泡菜单(Hex Menu)

h。

摸鱼专家 176

用DBGrid控件配合数据集组件的Sort属性实现“点击标题栏自动排序功能”。

        很多朋友在使用DBGrid控件时,抱怨没有点击标题栏便可自动排序的功能,实际上通过ADOQuery或其它数据集组件的Sort属性配合DBGrid的OnTitleClick事件,可以方便地实现此功能。因为Sort属性可以让活动数据集按指定的字段进行排序,也可以选择排序方式(升序/降序),所以我们只要在OnTitleClick事件中设置排序字段和排序方式即可,如以下代码:procedu

木子之井的专栏 3368

从地方政府网站抓取政务公开数据:Python爬虫技术详解

在本文中,我们通过具体实例介绍了如何使用Python编写爬虫,从地方政府门户网站抓取政务公开数据。我们使用了requestsSelenium等最新技术,结合SQLite数据库存储抓取的数据,最后使用matplotlib进行数据可视化分析。通过本项目,您可以掌握如何抓取政府网站的公开数据,并将其进行清洗、存储和分析。这些技术对于进行政府政策分析、公共服务分析等方面具有重要的实际意义。希望通过本文的介绍,您能够更好地理解政务数据抓取的流程和方法,并能在实际工作中运用这些技术进行数据采集和分析。

2201_76125261的博客 1702

用DBGrid控件的Sort属性实现“点击标题栏自动排序功能”

用DBGrid控件的Sort属性实现“点击标题栏自动排序功能”         很多朋友在使用DBGrid控件时,抱怨没有点击标题栏便可自动排序的功能,实际上通过ADOQuery或其它数据集组件的Sort属性配合DBGrid的OnTitleClick事件,可以方便地实现此功能。因为Sort属性可以让活动数据集按指定的字段进行排序,也可以选择排序方式(升序/降序),所以我们只要在OnTitl

1322

TC3XX - MCAL知识点(二十九):FLS MCAL配置及代码实战(英飞凌DFLASH)

FLS驱动程序为DFlash 0的初始化、读取、写入和擦除提供了定义良好的配置和标准服务。除此之外,我们还提供一些非autosar服务示例 Fls_17_Dmu_CompareWordsSync、Fls_17_Dmu_CancelNonEraseJobs、Fls_17_Dmu_VerifyErase,LFls_17_Dmu_VerifySectorErase、Fls_17_Dmu_GetNotifCaller等。用户通过FLS驱动程序获得对底层DFlash0的封装访问。

梦想技术家 2363

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

如何用DBGrid实现排序

我找到了使用 ADOQUERY 控件实现的方法,可做参考: 巧用DBGrid控件的Sort属性实现“点击标题栏自动排序功能 很多朋友在使用DBGrid控件时,抱怨没有点击标题栏便可自动排序的功能,实际上通过ADOQuery或其它数据集组件的Sort属性配合DBGrid的OnTitleClick事件,可以方便地实现此功能。因为Sort属性可以让活动数据集按指定的字段进行排序,也可以选择排序方式(

普森备忘录 3259

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

用DBGrid控件配合数据集组件的Sort属性实现“点击标题栏自动排序功能”

procedure TForm1.DBGrid1TitleClick(Column: TColumn); var i : Integer; begin for i:= 1 to DBGrid1.Columns.Count do begin //恢复所有标题字体为默认 DBGrid1.Columns[i-1].Title.Font.Color := cl...

weixin_34413357的博客 124

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

单击dbgrid的title进行排序

我找到了使用 ADOQUERY 控件实现的方法,可做参考:巧用DBGrid控件的Sort属性实现"点击标题栏自动排序功能很多朋友在使用DBGrid控件时,抱怨没有点击标题栏便可自动排序的功能,实际上通过ADOQuery或其它数据集组件的Sort属性配合 DBGrid的OnTitleClick事件,可以方便地实现此功能。因为Sort属性可以让活动数据集按指定的字段进行排序,也可以选择排序方式(升序 ...

注重长远 天天积累 cqujsjcyj 265

当单击DBGrid中的标题栏时,进行排序 (转)

当单击DBGrid中的标题栏时,进行排序 (转)[@more@]方法: 关键是用dbGrid的事件 OnTitleClick 首先判断单击是哪一列, i:=Column.Index; 然后要确定是哪个字段 Fi...

csd3176的博客 80

DBGrid单击表头排序

procedure TMainFrm.DBGrid2TitleClick(Column: TColumn);var flag:Boolean; tempstr:string;begin tempstr:=Column.Title.Caption; if Pos('▲',tempstr)>0 then flag:=False else flag:=True; if (Pos('▲...

weixin_30696427的博客 199

以ADO数据集相连的DBGrid按单一字段排序通用过程

//适用范围:与ADO数据集相连的DBGrid按单一字段排序//传入参数:Column(排序字段对应的DBGridColumn),DefaultSort(缺省排序串)//使用建议:在DBGrid的OnTitleClick中直接调用之。第一次单击某Column标题栏时,按改字段升序排列,连续第二次单击时改为降序,连续第三次单击时,改为缺省方式排序(如PrimaryKey等)procedure Sor

484

delphi的dbgrid控件点击title排序

procedure TfrmMain.DBGridEhTitleClick(Column: TColumnEh);var i : integer;begin for i:= 1 to DBGridEh.Columns.Count do begin//恢复所有标题字体为默认 DBGridEh.Columns[i-1].Title.Font.Color := clWindowText; ...

weixin_30900589的博客 456

VCL(四) 如何写出象TTable, TAdoTable ,Tquery,TAdoQuery 等控件一样的自动下拉显示Field属性

如何写出象TTable, TAdoTable ,Tquery,TAdoQuery 等控件一样的自动下拉显示Field属性Delphi VCL在Delphi 中有很多源码,但是有些关键的属性编辑器却找不到,下面我将举几个例子来说明一下我们可以研究一下TDBEdit的两个关键属性一个Datasource,DataField.示例如下TTestcontrol=class(TWinControl) pri

donson wan的专栏 1942
上一篇: 2005年1月8日——最伤心的一天
下一篇: 天下无贼中经典的句子
SafeF8
博客等级 码龄22年 10粉丝 104原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值