如何讓datetimepicker(或edit)在執行其他操作前失去焦點?

解决方案 »

  1.   

    让其他的控件得到焦点
    或者要用windows的消息
      

  2.   

    我用   datetimepicker.focused:=false  爲什麽執行通不過?
      

  3.   

    典型问题:
    OnExit事件写代码:
    DateTimePicker1Exit(Sender: TObject);
    begin
      Edit1.SetFocus;
    end;
    我爱Delphi!
      

  4.   

    實現時間區段的查旬;
    第一次查旬沒問題,若改時間,程序會默認上次的時間。只有黨時間改變,且datetimepicker沒焦點時,更改的時間才起作用。
      

  5.   

    我现在把DELPHI都忘了,在VC中是把鼠标相关函数重载,把里边的代码清掉没返回值!你在DELPHI中试试!
      

  6.   

    //我也碰到过类似问题,以下代码能满足你的要求:
    //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.
    //我也不知道为什么这样就行了,呵呵
      

  7.   

    TForm1.CMMouseLeave  是什麽?定義的?
    謝謝!
      

  8.   

    procedure CMMouseLeave(var Message:TMessage); Message CM_MOUSELEAVE;
    是Windows 消息响应函数,熟悉Dos下的中断处理程序或TSR(内存驻留程序)吧?类似于那样的东西。CMMouseLeave是鼠标离开一个组件时Windows发出的消息。
      请参考Delphi“Message”关键字相关帮助。