焦點問題! 如何讓datetimepicker(或edit)在執行其他操作前失去焦點? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 让其他的控件得到焦点或者要用windows的消息 我用 datetimepicker.focused:=false 爲什麽執行通不過? 典型问题:OnExit事件写代码:DateTimePicker1Exit(Sender: TObject);begin Edit1.SetFocus;end;我爱Delphi! 實現時間區段的查旬;第一次查旬沒問題,若改時間,程序會默認上次的時間。只有黨時間改變,且datetimepicker沒焦點時,更改的時間才起作用。 我现在把DELPHI都忘了,在VC中是把鼠标相关函数重载,把里边的代码清掉没返回值!你在DELPHI中试试! //我也碰到过类似问题,以下代码能满足你的要求://This code works,but i do not know why. :)//put Image1,DateTimePicker1 on form first, and write CMMouseLeave//Event handler.unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls, CommCtrl;type TForm1 = class(TForm) DateTimePicker1: TDateTimePicker; Image1: TImage; procedure Image1Click(Sender: TObject); procedure CMMouseLeave(var Message:TMessage); Message CM_MOUSELEAVE; private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Image1Click(Sender: TObject);begin ShowMessage(DateToStr(DateTimePicker1.Date));end;procedure TForm1.CMMouseLeave(var Message: TMessage);var pst: TSystemTime;begin inherited; DateTime_GetSystemTime(DateTimePicker1.Handle, pst);end;end.//我也不知道为什么这样就行了,呵呵 TForm1.CMMouseLeave 是什麽?定義的?謝謝! procedure CMMouseLeave(var Message:TMessage); Message CM_MOUSELEAVE;是Windows 消息响应函数,熟悉Dos下的中断处理程序或TSR(内存驻留程序)吧?类似于那样的东西。CMMouseLeave是鼠标离开一个组件时Windows发出的消息。 请参考Delphi“Message”关键字相关帮助。 delphi实现点确定自动打开相应WORD 如何让xml文件使用xsl样式表? 请教各位大虾,如何在程序中对Access表进行压缩,在线等!!!!! 如何得到字符串中的数字啊? 解释下GetMem是怎么用的,什么情况用 打印时如何调整字间距 不知道谁能提供一个控件。100分送.~~~~~~~~~~oooooo~~~~~~~~~ 哪款表格控件支持底部合计栏? 一个关于IE的编程问题。请各位大哥帮帮忙。 Ttimer? TDataBase怎么连接SQL Server服务器? 问题,关于DBGrid数据库网络控件数据随时更新的问题.请同行指教!
或者要用windows的消息
OnExit事件写代码:
DateTimePicker1Exit(Sender: TObject);
begin
Edit1.SetFocus;
end;
我爱Delphi!
第一次查旬沒問題,若改時間,程序會默認上次的時間。只有黨時間改變,且datetimepicker沒焦點時,更改的時間才起作用。
//This code works,but i do not know why. :)
//put Image1,DateTimePicker1 on form first, and write CMMouseLeave
//Event handler.unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls, CommCtrl;type
TForm1 = class(TForm)
DateTimePicker1: TDateTimePicker;
Image1: TImage;
procedure Image1Click(Sender: TObject);
procedure CMMouseLeave(var Message:TMessage); Message CM_MOUSELEAVE;
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Image1Click(Sender: TObject);
begin
ShowMessage(DateToStr(DateTimePicker1.Date));
end;procedure TForm1.CMMouseLeave(var Message: TMessage);
var
pst: TSystemTime;
begin
inherited;
DateTime_GetSystemTime(DateTimePicker1.Handle, pst);
end;end.
//我也不知道为什么这样就行了,呵呵
謝謝!
是Windows 消息响应函数,熟悉Dos下的中断处理程序或TSR(内存驻留程序)吧?类似于那样的东西。CMMouseLeave是鼠标离开一个组件时Windows发出的消息。
请参考Delphi“Message”关键字相关帮助。