首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

调用InvalidateCol()时TStringGrid不刷新

调用InvalidateCol()时TStringGrid不刷新是因为InvalidateCol()方法只会标记指定列需要重新绘制,但不会立即触发重绘操作。为了使TStringGrid刷新并重新绘制指定列,可以调用TStringGrid的Update()方法。

TStringGrid是Delphi编程语言中的一个控件,用于显示和编辑二维表格数据。它是基于TControl类的一个派生类,可以在Delphi的窗体上进行使用。

InvalidateCol()方法用于标记指定列需要重新绘制。当调用InvalidateCol()方法后,TStringGrid会在下一次绘制时重新绘制被标记的列。但是,由于绘制操作是异步执行的,所以在调用InvalidateCol()后,TStringGrid不会立即刷新。

为了解决这个问题,可以在调用InvalidateCol()后立即调用TStringGrid的Update()方法。Update()方法会立即触发重绘操作,使得被标记的列得到刷新。

示例代码如下:

代码语言:delphi
复制
StringGrid1.InvalidateCol(1); // 标记第1列需要重新绘制
StringGrid1.Update(); // 立即触发重绘操作

这样,调用InvalidateCol()时TStringGrid就会刷新并重新绘制指定列。

TStringGrid的应用场景包括但不限于:数据展示、数据编辑、数据分析等。它可以在各种需要显示二维表格数据的场景中使用,如管理系统、报表生成、数据统计等。

腾讯云提供了云计算相关的产品和服务,其中包括云服务器、云数据库、云存储等。具体推荐的腾讯云产品和产品介绍链接地址可以根据实际需求进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • CreateProcess不显示或者创建窗口 (或用虚拟桌面实现后台调用外部程序)

    【方法一:】 将 CreateProcess()的参数dwCreationFlags指定为CREATE_NO_WINDOW,即以创建窗口方式创建DOS进程。 【参考代码:】 if (!...这样就需要我在程序里调用他的这个EXE可执行文件。...调用EXE文件,可以用WINEXEC()、SHELLEXECUTE()和CreateProcess()等函数来实现,我这里就用CreateProcess()来调用。...实在没办法,我想在打开的时候不让用户看到这个执行文件:首先调用FINDWINDOW来查找窗口的句柄,之后再用SendMessage()来隐藏窗口,但是还是会有一瞬主窗口被显示出来的,或许你会说我BT吧,...好了,这样就几乎完美的实现了一个后台调用程序的功能,它对最终客户来说将是完全透明的,客户根本感觉不到后台还有另一个程序在工作。

    4K30

    如何解决mybatis-plus调用update方法,自动填充字段生效问题

    走自动填充逻辑。...其实体对象是null,导致调用自动填充方法,得到的tableInfo是null,因而无法进入自动填充实现逻辑,因此导致填充自动失效 如何解决update(Wrapper updateWrapper...),自动填充生效问题 通过源码分析我们得知,只要tableInfo不为空,则就会进入自动填充逻辑,而tableInfo不为空的前提是更新或者插入的实体不是null对象,因此我们的思路就是在调用update...this.applicationContext = applicationContext; } /** *重写update(Wrapper updateWrapper), 更新自动填充生效问题...不过其他版本的分析思路大同小异,都是去跟踪什么地方调用了自动填充的逻辑。

    4.1K00

    学习笔记:delphi之TStringGrid

    想了想就用TStringGrid来试试,毕竟也是个表格,可定制性也大的多,好吧。就用它试试。...2、技术点 最核心的功能还是由TStringGrid提供,一方面它已经具备了显示一个二维表格的能力,另一方面提供了灵活的设定来开启各种自定义的功能,比如是否显示网格线,行、列是否可以改变大小等。...FixCol和FixRow的属性 3、文本换行 3、开发 3.1、属性设置 DefaultDrawing:设置为False,这样就不会在OnDrawCell之前进行绘制,否则会先进行父类的绘图功能,再调用...但有一个问题,AutoSize为true没法自动换行,醉了。这个问题后面再找办法解决吧。...调用上面那句代码后,cellRect就会计算出文本显示的矩形大小了。同样就得到了宽高。

    1.8K50

    实现无感刷新token我是这样做的

    后端:给你刷新token的接口,定时去刷新token 前端:好,让我思考一下 需求 当token过期的时候,刷新token,前端需要做到无感刷新token,即刷token要做到用户无感知,避免频繁登录...实现思路 方法一 后端返回过期时间,前端判断token过期时间,去调用刷新token接口 缺点:需要后端额外提供一个token过期时间的字段;使用了本地时间判断,若本地时间被篡改,特别是本地时间比服务器时间慢...方法二 写个定时器,定时刷新token接口 缺点:浪费资源,消耗性能,建议采用。...将请求存进队列中后,同时返回一个Promise,让这个Promise一直处于Pending状态(即不调用resolve),此时这个请求就会一直等啊等,只要我们执行resolve,这个请求就会一直在等待...当刷新请求的接口返回来后,我们再调用resolve,逐个重试。

    1.5K40

    无感刷新 token 你是怎么做的,不妨进来看看

    后端:给你刷新token的接口,定时去刷新token 前端:好,让我思考一下 需求 当token过期的时候,刷新token,前端需要做到无感刷新token,即刷token要做到用户无感知,避免频繁登录...实现思路 方法一 后端返回过期时间,前端判断token过期时间,去调用刷新token接口 缺点:需要后端额外提供一个token过期时间的字段;使用了本地时间判断,若本地时间被篡改,特别是本地时间比服务器时间慢...方法二 写个定时器,定时刷新token接口 缺点:浪费资源,消耗性能,建议采用。...将请求存进队列中后,同时返回一个Promise,让这个Promise一直处于Pending状态(即不调用resolve),此时这个请求就会一直等啊等,只要我们执行resolve,这个请求就会一直在等待...当刷新请求的接口返回来后,我们再调用resolve,逐个重试。

    1.1K20

    layui table reload表格刷新重加载后lay-tips提示框不显示问题

    二、出现的bug         在别的地方调用table.reload()方法刷新表格数据后,提示框不显示,但是在F12中查看该DOM元素的属性,lay-tips属性还在,大概加估计,猜测是失去了绑定的...mouseenter监听事件,导致触发了。...这样每次刷新表格所在页面(注意和刷新表格的不同),就会在加载表格执行table.render()方法的同时,执行一次给表头添加mouseenter事件的方法,但是当在别的地方改变了表格里的数据,通过table.reload...()方法刷新表格,没有再给表头绑定mouseenter事件,导致弹出提示框。...四、解决办法         首先想到的解决办法是在表格刷新,再调用一次绑定mouseenter事件的方法,但是这样可能会造成重复绑定,尤其是页面使用了tab控件包括多个table的时候,容易重复添加

    2.2K20

    前端如何实现token的无感刷新

    要做到token的无感刷新,主要有3种方案: 方案一: 后端返回过期时间,前端每次请求就判断token的过期时间,如果快到过期时间,就去调用刷新token接口。...缺点:需要后端额外提供一个token过期时间的字段;使用了本地时间判断,若本地时间被篡改,特别是本地时间比服务器时间慢,拦截会失败。 方法二 写个定时器,然后定时刷新token接口。...缺点:浪费资源,消耗性能,建议采用。 方法三 在请求响应拦截器中拦截,判断token 返回过期后,调用刷新token接口。 综合上面的三个方法,最好的是第三个,因为它不需要占用额外的资源。...将请求存进队列中后,同时返回一个Promise,让这个Promise一直处于Pending状态(即不调用resolve),此时这个请求就会一直等啊等,只要我们执行resolve,这个请求就会一直在等待...当刷新请求的接口返回来后,我们再调用resolve,逐个重试。

    5.7K21

    如何在Power BI里获取并显示最新更新日期?

    方法一 DateTime.LocalNow() 通过这个函数可以生成一个表,该表存储数据模型每次刷新的当前时间。...这种方法的不足在于,以下三个场景可能造成时间的时区统一: 在本地刷新后发布到Power BI Service,返回的是本地电脑的时间; 在云端设置计划刷新涉及网关),返回的是云端服务器所在国家的时间...; 基于本地数据源的计划刷新(涉及网关),返回网关系统的时间。...这种方法也有弊端,即实行冬夏令的国家地区,时差是固定的,每年需要调整2次。 方法三 调用接口 通过网站(如http://worldclockapi.com/)接口,生成固定统一的时间。...报表界面展示 在Power BI报表界面上显示该日期,最好用DAX建一个度量值,方便后续其他度量值的调用。度量值写法如下所示。

    4.8K20

    layer实现关闭弹出层刷新父界面功能详解

    无论是确认还是取消,只要层被销毁了,end都会执行,携带任何参数。...iframe的url,yes是否有滚动条       end:function() {         location.reload();       } }); layer弹出框处理完成之后,就不需要调用其他刷新操作函数了...parent.layer.getFrameIndex(window.name); parent.layer.close(index); 相比较而言,第一种方案会更佳,因为在操作逻辑上,手动关闭弹出框,应该触发刷新操作...,只有当弹出框的处理逻辑执行成功后,调用函数关闭弹出框才触发父界面刷新操作,基于这个逻辑,应该选择方案一。...对于layer.js出现回调关闭父类的弹出层,之前的表单的submit失效的问题: 如何解决:网上有很多,有的是转为ajax的请求,在数据传输完再关闭父类的弹出层: 下面是关闭父弹出层的办法: 1 2

    4.6K60

    html如何只刷新页面指定,js控制页面刷新 JS刷新当前页面的几种方法总结

    JS页面 如何实现刷新指定DIV。。。 其他DIV刷新 将innerHTML所在的方法用一个单独的函数写出来,然后需要调用。....; } 然后,需要刷新该div的时候就调用一下该Load()函数。...js实现进入页面先刷新在继续进行js的功能 js实现,进入页面先刷新一下,然后在执行之后js代码需要完成的工作 js或者jquery实现固定时间刷新页面 js怎么写2秒后再刷新当前页面 设置定时2秒后执行刷新...JS刷新当前页面的几种方法总结 reload 方法,该方法强迫浏览器刷新当前页面。...可以 就是不知道用js 或jquery怎样实现的F5功能 或者有其他方法实现 js刷心当前页面,你说的闪应该是所有页面不会有变白的一瞬间,那就根据需要对页面某一块区域用AJAX处理,刷新的时候就只会改变

    13.8K30

    Mybatis的二级缓存配置

    一个项目中肯定会存在很多共用的查询数据,对于这一部分的数据,没必要 每一个用户访问都去查询数据库,因此配置二级缓存将是非常必要的。...(无论查询方法返回什么)的1024个引用   缓存会被视为read/write(可读/可写)的缓存,意味着对象检索不是共享的,而且可以安全的被调用者修改,而不干扰其他调用者或者线程所做的潜在修改 所有这些属性都可以通过缓存元素的属性来修改...,储存结 果对象或列表的512个引用,而且返回的对象被认为是只读的,因此在不同线程中的调用者之间修改他们会导致冲突。...默认情况是设置,也就是没有刷新间隔,缓存仅仅调用语句刷新。 size(引用数目)可以被设置为任意正整数,要记住你缓存的对象数目和你运行环境的可用内存资源数目。...但是实际中,我们并是希望这样,有些select不想被缓存,可以添加select的属性useCache=“false”;有些insert、update和delete不想让他刷新缓存,添加属性flushCache

    36920

    前端如何实现token的无感刷新

    有,通过无感刷新token!即token在更新用户无感知,从而避免用户的频繁登陆。 关于无感刷新网上一般有三种解决方案: 1、后端返回过期时间,前端判断token过期时间,去调用刷新token接口。...缺点:需要后端额外提供一个Token过期时间的字段;使用了本地时间判断,若本地时间篡改,特别是本地时间比服务器时间慢,拦截会失败。 2、写个定时器,定时刷新Token接口。...缺点:浪费资源,消耗性能,建议采用。 3、在响应拦截器中拦截,判断Token 返回过期后,调用刷新token接口。 以上三种解决方案都是建立在前端调用后端刷新Token接口的基本之上的。...比如:请求需要增加中间变量防止多次刷新token;同时发起两个或者两个以上的请求,需要借助Promise安排Token刷新接口的调用顺序。...---- 其实Token也是需要设计的,只要设计的合理,也可大大减少后续的烦恼: 后端在创建Token,可以将时间设置为Token生成时间,请求过期时间,刷新token过期时间,以及总体过期时间(根据项目需求而定

    3.6K30

    layoutSubviews 详解

    : 1、init初始化不会触发layoutSubviews 但是是用initWithFrame 进行初始化时,当rect的值不为CGRectZero,也会触发 2、addSubview会触发...layoutSubviews, 当我们在某个类的内部调整子视图位置,需要调用。 反过来的意思就是说:如果你想要在外部设置subviews的位置,就不要重写。...刷新子对象布局 –layoutSubviews方法:这个方法,默认没有做任何事情,需要子类进行重写 -setNeedsLayout方法: 标记为需要重新布局,异步调用layoutIfNeeded刷新布局...,立即刷新,但layoutSubviews一定会被调用 -layoutIfNeeded方法:如果,有需要刷新的标记,立即调用layoutSubviews进行布局(如果没有标记,不会调用layoutSubviews...) 如果要立即刷新,要先调用[view setNeedsLayout],把标记设为需要布局,然后马上调用[view layoutIfNeeded],实现布局 在视图第一次显示之前,标记总是“需要刷新

    46930

    JS深入浅出 - requestAnimationFrame

    大多数电脑显示器的刷新频率是60Hz,大概相当于每秒钟重绘60次。大多数浏览器都会对重绘操作加以限制,超过显示器的重绘频率,因为即使超过那个频率用户体验也不会有提升。...setTimeout / setInterval 计时不精确:不同浏览器的计时器精度都存在误差,此外浏览器会对切换到后台或活跃标签页中的计时器进行限流,导致计时器计时误差。...requestAnimationFrame 自带节流功能,例如在某些高频事件(resize,scroll 等)中,requestAnimationFrame 依据系统时间间隔来调用回调,可以防止在一个刷新间隔内发生多次函数执行...setTimeout 的执行只是在内存中对图像属性进行改变,这个改变必须要等到下次浏览器重绘才会被更新到屏幕上。...早期浏览器会对切换至后台或活跃的标签页中的计时器执行限流,导致计时器时间不精确,此外计时器在后台仍会进行计时工作,执行动画任务,此时刷新动画是完全没有意义的。

    1.6K30

    微信小程序—-返回上一页刷新或当前页刷新

    优缺点 直接使用生命周期,简单粗暴,但是全页面重载,用户体验和资源占用比较明显,建议使用; 初始化重载页面方法建议使用,这样加载当前页面数据比较方便,如果需要多接口刷新,直接调用,方便快捷,逻辑清晰,...生命周期法刷新页面 this.onLoad(this.options); // 或者 this.onShow(); 注意:如果刷新页面有上一个页面传入的参数,需要将 【this.options...this.onLoad() }}) } } }) } 返回上一页刷新 场景: 电商购买物品填写地址,然后返回购买页面...页面栈刷新数据 以获取上一页页面栈为例,通过 getCurrentPages 获取页面栈; 判断上一页面是否是【orderConfirm】,也就是确定跳转当前页面的来源; 此处是选择一个邮寄地址,注意默认邮寄地址...总结 微信小程序要实现页面刷新,简单的说就是在不同的地方执行onLoad周期函数。不过需要注意在刷新是否需要初始化变量,这个必须注意。

    7.3K10
    领券