ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android平台自己定制日期对话框

2021-06-15 18:36:11  阅读:184  来源: 互联网

标签:begin end 对话框 FDateTimePicker Android 定制 procedure TQueryCpzsDoc


我想为一个按钮定制一个日期对话框,即用户点击按钮就弹出一个日期对话框,该如何实现呢?

首先,引用单元FMX.Pickers, FMX.Platform,然后声明一个日期对话框:

    FDateTimePicker: TCustomDateTimePicker;

然后,在Create事件中建立这个对话框:

procedure TQueryCpzsDoc.AfterConstruction;
var
  PickerService: IFMXPickerService;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXPickerService, PickerService) then
  begin
    FDateTimePicker := PickerService.CreateDateTimePicker;
    FDateTimePicker.Parent := Self;
    FDateTimePicker.OnDateChanged := HandlerPickerDateTimeChanged;
    FDateTimePicker.OnHide:=Self.OnDateHide;
  end;

end;

同时要接管用户输入日期点确定的事件,OnDateChanged:

procedure TQueryCpzsDoc.HandlerPickerDateTimeChanged(Sender: TObject; const ADate: TDateTime);
begin
  DateButton.Text := FormatDateTime('yyyy-mm-dd', ADate);
end;

最后,别忘记销毁这个对话框:

procedure TQueryCpzsDoc.BeforeDestruction;
begin
  if Assigned(FDateTimePicker) then
  begin
    if FDateTimePicker.IsShown then
      FDateTimePicker.Hide;
    FreeAndNil(FDateTimePicker);
  end;
  inherited;
end;

现在,点击DateButton时,显示这个对话框:

procedure TQueryCpzsDoc.DateButtonClick(Sender: TObject);
var
  d: TDateTime;
begin
  if TryStrToDate(DateButton.Text, d) then
    FDateTimePicker.Date := d
  else
    FDateTimePicker.Date := Date;

  FDateTimePicker.Show;
end;

万事大吉,为一个按钮,定制了一个日期对话框。

遇到的问题:

在我的实际项目中,发现这个对话框会自动隐藏,经查,发现是TTabControl,用Timer定时显示一个TabItem时,将我的对话框给关了。查到原因就好解决了,当显示这个对话框时,Timer.Enabled:=False,解决!

 

标签:begin,end,对话框,FDateTimePicker,Android,定制,procedure,TQueryCpzsDoc
来源: https://www.cnblogs.com/kinglandsoft/p/14886607.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有