首页 > 系统相关 >解决lazarus版本dbgrideh在linux粘贴重复的Bug

解决lazarus版本dbgrideh在linux粘贴重复的Bug

时间:2024-08-29 18:06:44浏览次数:11  
标签:end dbgrideh TextLength Text lazarus Grid linux AText TextCopy

dbgrideh在linux存在粘贴重复的Bug,不啰嗦,直接给解决方法:
1.打开EhLib.VCL 11.1 xxx/Lazarus/Lib/DBAxisGridsEh.pas
2.定位到function TDBAxisGridInplaceEdit.DoPaste(var Message: TMessage): Boolean; 
添加红字部分代码,重新编译应用就可以。

        AAxisBar := Grid.AxisBars[Grid.SelectedIndex];
        ClipboardText := Clipboard.AsText;
        AText := AAxisBar.GetAcceptableEditText(ClipboardText);
        if (MaxLength > 0) and (TextLength(Text) + TextLength(AText) - SelLength > MaxLength) then
          AText := TextCopy(AText, 1, MaxLength - TextLength(Text) + SelLength);
        FSearchText := TextCopy(Text, 1, SelStart) + AText + TextCopy(Text, SelStart + SelLength + 1, MAXINT);
        NewSelStart := TextLength(TextCopy(Text, 1, SelStart) + AText);
        Grid.DataLink.Edit;
        if Grid.Datalink.Editing then
        begin
          {$ifdef mswindows}
          Grid.Datalink.Modified;
          Text := FSearchText;
          SelStart := NewSelStart;
          Grid.FEditText := Text;
          {$endif}
          {$IFDEF FPC_CROSSP}
          {$ELSE}
          SendMessage(Handle, EM_SCROLLCARET, 0,0);
          {$ENDIF}
        end;
      end
      else
        Result := inherited DoPaste(Message);
    end;
  end;
end;

 

标签:end,dbgrideh,TextLength,Text,lazarus,Grid,linux,AText,TextCopy
From: https://www.cnblogs.com/qiufeng2014/p/18387325

相关文章

  • Linux 文本处理
    1.正则表达式        Linux正则表达式在文本处理和搜索过程中起着非常重要的作用。它可以用于匹配和查找符合特定模式的字符串,从而实现强大的文本处理功能。以下是一些常见的正则表达式作用:        1.匹配字符串:正则表达式可以根据指定的模式匹配字符串。......
  • 红帽系的linux系统中防火墙--firewalld
    firewalld简介firewalld是RedHat系列Linux发行版(如Fedora、CentOS等)引入的一种动态防火墙管理工具,它充当了Linux内核的Netfilter框架的前端,具体防火墙执行是由内核的netfilter来执行的。firewalld提供了一个基于区域(zone)和服务(service)的简化配置界面,使得管理防火墙规则更......
  • Linux通用性-日志切割脚本
    一、公司提供的参考脚本:#!/bin/bash#定义需要清理的文件log_file=("/mpjava/ly.mp.dfpv.acc.biz/bin/nohup.out""/mpjava/ly.mp.dfpv.acc.service/bin/nohup.out")#获取当天日期date_now=$(date+%Y%m%d)forfile_dirin$log_filedo#获取文件路径dir=$(dir......
  • Oracle DB 因宿主机(Linux 虚拟机)意外关停,重启数据库步骤
    前期准备:示例的linux版本为:linux9宿主机重启后,如果之前挂载的oraclehome路径及环境变量未生效,需要先重新设置:exportORACLE_SID=FREEexportORAENV_ASK=NO./opt/oracle/product/23ai/dbhomeFree/bin/oraenv前往home路径下的bin文件夹下进行操作:cd$ORACLE_HOME/bin......
  • linux下UsbMon-WireShark之USB协议抓取分析
    usbmon配置使用usbmon抓包分的,是需要内核开启CONFIG_USB_MON=m,重新编译内核,编译ko:makeARCH=arm64CROSS_COMPILE=aarch64-himix100-linux-CONFIG_USB_MON=mM=./drivers/usb/modules设备挂载debugfs,加载ko:mount-tdebugfsdebugfs/sys/kernel/debug/insmod......
  • Linux | Ubuntu 16.04.4 通过docker安装单机FastDFS
    Ubuntu16.04.4通过docker安装单机fastdfs前言很久没有写技术播客了,这是一件很不应该的事情,做完了事情应该有沉淀的。我先说一点前情提要,公司的fastdfs突然就挂了,做过的操作就是日志文件太大了,所以把日志文件给删了,理论上这个动作应该不影响程序运行才对。然后tracker怎么都......
  • 关于linux系统镜像下载 ubuntu centos
    1.直接上观点:目前主流的linux:乌班图(Ubuntu):主要是个人使用,值得一提的是,目前ai服务器很多都选择乌班图,主要还是centos7官网停更了;centos7:这个可是主流,尽管官网停更,但是这些年积累的用户量是最多的,如果不知道自己服务器用什么,那选centos7肯定没错,各类技术文档,各种问题解决,c......
  • Linux系统安装nginx
    目录一、下载软件包二、安装依赖三、安装Nginx四、启动&停止五、配置systemd方式管理NG六、启动&停止七、实验测试一、下载软件包网址:https://nginx.org/二、安装依赖yum-yinstallgccpcre-develzlib-developensslopenssl-devel三、安装Nginx#解压tar......
  • 3.3.1 Linux中断的使能与屏蔽
    点击查看系列文章 =》 InterruptPipeline系列文章大纲-CSDN博客3.3.1Linux中断的使能与屏蔽3.3.1.1 中断使能与屏蔽的三重关卡        本章的主题是hard_local_irq_disable(),它是对中断的关闭操作。为了彻底搞清楚中断关闭的机制,这里先对Linux使能与屏蔽中断的......
  • 关于linux 中断的嵌套
    在Linux系统中,关于中断嵌套的问题,我们可以从以下几个方面进行说明:###一、Linux中断处理的基本机制Linux系统中的中断是一种异步事件处理机制,用于处理硬件设备或其他系统事件引起的中断请求。中断处理程序(InterruptServiceRoutine,ISR)是操作系统内核中用于响应和处理这些中断......