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

Android平台自己定制日期对话框,第1张

概述我想为一个按钮定制一个日期对话框,即用户点击按钮就d出一个日期对话框,该如何实现呢?首先,引用单元FMX.Pickers,FMX.Platform,然后声明一个日期对话框:FDateTimePicker:TCustomDateTimePicker;然后,在Create事件中建立这个对话框:procedureTQueryCpzsDoc.AfterConstructio

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

首先,引用单元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,解决!

 

总结

以上是内存溢出为你收集整理的Android平台自己定制日期对话框全部内容,希望文章能够帮你解决Android平台自己定制日期对话框所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1211052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存