首页 > 系统相关 >lazarus 编译为Linux gtk2的应用使用TDateTimePIcker日历在tkDate模式日历下拉菜单不响应鼠标点击

lazarus 编译为Linux gtk2的应用使用TDateTimePIcker日历在tkDate模式日历下拉菜单不响应鼠标点击

时间:2023-01-25 19:33:38浏览次数:43  
标签:日历 lazarus Linux DTPickersParentForm PopupMode 下拉菜单

网友<安全生产监管>发现lazarus 编译为Linux gtk2的应用使用TDateTimePIcker日历在tkDate模式,日历下拉菜单不响应鼠标点击,这个问题在windows和linux qt下没问题。
环境:
1、Lazarus 2.2.4
2、FPC 3.2.2
3、Linux deepin 内核版本:5.15.77
如果你也遇到这个问题,可以按他给出的解决方案处理:
打开lazarus\components\datetimectrls\datetimepicker.pas,将880行注释,第881行PopupMode := pmExplicit;改为PopupMode := pmNone;

constructor TDTCalendarForm.CreateNewDTCalendarForm(AOwner: TComponent;
  ADTPicker: TCustomDateTimePicker);
var
  P: TPoint;
  CalClass: TCalendarControlWrapperClass;
begin
  inherited CreateNew(AOwner);

  ADTPicker.FAllowDroppingCalendar := False;
  FClosing := False;

  DTPicker := ADTPicker;
  BiDiMode := DTPicker.BiDiMode;
  DTPickersParentForm := GetParentForm(DTPicker);
  if Assigned(DTPickersParentForm) then begin
    DTPickersParentForm.AddHandlerOnVisibleChanged(@VisibleOfParentChanged);
    DTPickersParentForm.FreeNotification(Self);
    PopupParent := DTPickersParentForm;
    PopupMode := pmExplicit;
  end else
    PopupMode := pmAuto;

按以下修改就可以:

if Assigned(DTPickersParentForm) then begin
   DTPickersParentForm.AddHandlerOnVisibleChanged(@VisibleOfParentChanged);
    DTPickersParentForm.FreeNotification(Self);  
    {PopupParent := DTPickersParentForm;  //<- this one
    PopupMode := pmExplicit;}
    PopupMode := pmNone;                  //<- with this one
  end else
    PopupMode := pmAuto;   

 

标签:日历,lazarus,Linux,DTPickersParentForm,PopupMode,下拉菜单
From: https://www.cnblogs.com/qiufeng2014/p/17067174.html

相关文章

  • win10 sshfs 挂载linux文件夹
    ​​welcometomyblog​​在linux服务器跑实验后,需要把实验结果提交到指定的网址上,此时还得把文件传回win10,然后再上传,感觉太繁琐了,去谷歌上找了直接挂载linux......
  • linux 中查看不同分区所属的文件系统
     001、lsblk-f命令[root@PC1/]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:00120G0disk├─sda18:10......
  • linux 中查看磁盘的总容量
     001、lsblk命令[root@PC1Desktop]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:00120G0disk├─sda18:1......
  • (一)Linux常用命令
    Linux常用命令1、ls:查看当前目录下的内容-a:显示所有文件及目录(以.开头的隐藏文件也会列出)-l:除文件名称外,同时将文件型态、权限、拥有者、文件大小等详细信息列出ls......
  • linux学习路线
    对于linux的学习,可以先自己搭建一个ubuntu服务器,同时搭建通过内网穿透等熟悉对ubuntu的各种操作。具体的linux命令学习,我这里是通过学习阿里云开发者社区的教程和视频htt......
  • linux samba 共享设置
     linux和windows之间传输文件有很多种方法,今天分享一下通过samba软件实现文件共享。首先切换到root用户,用命令aptinstallsamba安装samba。按提示安装,安装完执行命令sam......
  • Linux操作系统与常用命令
    Python进阶篇-系列文章全篇......
  • 【Linux】Ubuntu镜像索引
    ✨Ubuntu镜像索引Ubuntu官方网站似乎UbuntuARM镜像并不容易寻找可以点击如下链接前往Ubuntu镜像索引选择需要版本http://cdimage.ubuntu.com/可以非常方便地下载到Des......
  • 【Linux】Kali Linux镜像索引
    ✨KaliLinux镜像索引通过分析KaliLinux下载链接不难发现如下镜像索引链接较新版本镜像:https://kali.download/base-images/较新版本虚拟机镜像:https://kali.downlo......
  • day01 - Linux基础命令
    1.操作系统介绍操作系统的作用:用来整合硬件系统资源常用操作系统: 1.DOS 2.Windows: a.win3.1,win3.2 b.win95 c.win97 d.windowsme e.window......