当DBEdit中数据有改变的时候是不是在change中去写判断,如果是的话 为什么我没改变DBEdit里面的数据程序也会提示,如果不是,那应该在那边写呢

解决方案 »

  1.   

    OnChange 在文本框、Image、ScrollBar等控件中的值被改变时发生
      

  2.   

           Delphi 中的常用事件 
    事件                     描 述
    OnActive           焦点称到窗体或控件时发生
    OnClick            鼠标单击事件
    OnDbClick    鼠标双击事件
    OnClose和OnCloseQuery 当关闭一个窗体时就会响应OnClose和OnCloseQuery事件 ,OnCloseQuery事件比OnClose具有更高的优先级。
    OnContextPopup 在窗体上单击鼠标右键时触发
    OnCreate 建立事件,窗件或控件第一次建立时发生。OnCreate事件只发生一次,用来执行初始化任务
    OnDeactivate 从当前程序切换到另一个应用程序时发生
    OnDestroy 卸载窗体或控件时被触发,用来清除窗体或控件所占的内存,或者其他的收尾工作
    nDragDrop和OnDragOver 如果有外部对象被拖放到控件上时触发
    OnMouseDown和OnMouseUp 响应鼠标在控件上的按下鼠标、释放鼠标的事件
    OnMouseMove 鼠标在控件上移动时被触发的事件
    OnHide         窗体或控件隐藏时触发的事件
    OnKeyDown、OnKeyPress、OnKeyUp 响应键盘事件
    OnPaint         窗体或控件需要重画时发生
    OnResize 窗体或控件调整大小时被触发的事件。当使用极大化、极小化按钮时此事件也会被触发
    OnShow         窗体或控件显示出来之前发生的事件
    OnMeasureItem 在ComboBox控件中改变选择项时发生的事件
    OnChange 在文本框、Image、ScrollBar等控件中的值被改变时发生
    OnScroll 拖动滚动条时被触发
    OnBandDrag和OnBandMove 当ControlBar内的对象被拖动和移动时触发
      

  3.   

    OnChange 文本框内容发生改变时触发
      

  4.   

    但是我程序根本就没有改变文本框的内容,可以一进系统他就提示触发了Onchange事件?这是为什么?难道程序第一次从数据库中获得第一天数据他也算修改了DBEdit里面文本的内容吗?
      

  5.   

    你的程序是不是进去后的焦点就在dbedit上,有没有在form的onshow ,oncreate,onActivate中有关于DBEDIT自动新增的语句?
      

  6.   

    不是 焦点在DBGIRD的第一条记录,好像原因就是它获取了DBGIRD里面第一条值的时候,程序就判断它文本有改变,我的意愿就是当获取DBGIRD里面的数据的时候,再去改变文本框内容的时候,再判断不是有改变
      

  7.   


    因为程序启动后,dbedit连接数据字段,当字段内容显示出来的时候,就会触发onchange事件
      

  8.   

    那如何做 我在我连接的时候,不去触发onchange事件呢
      

  9.   

    OnChange 事件是对象(内容)发生改变时触发的事件
      

  10.   

    OnChange  输入框的值改变时触发
    EditValueChanged 字段值改变时触发
      

  11.   

    我找了好久都没找EditValueChanged 这个
      

  12.   

    你可以在datasource上的onDataChange下写代码~~
      

  13.   

    DataChange还是在获得一个新纪录但是我并没有改变值的时候触发了onDataChange
      

  14.   

    在程序启动时是不是打了数据库连接,如果是的话就已经改变了DBEdit的值
      

  15.   

    恩 启动程序的时候是打了数据库连接,有什么办法能在连接的时候不去触发onchange在具体修改的时候再去触发onchange呢
      

  16.   

    这样?
    procedure TForm1.DBEdit1Change(Sender: TObject);
    begin
      if ADOQuery1.State = dsEdit then
        ShowMessage('adf');
    end;
      

  17.   

    你打数据库后DBEDIT的值一般来说是会改变的
    所以就会触发的拉,