问题一:
  用Edit或DBEdit输入“客户编码”后,当离开这个Edit或DBEdit时(失去焦点),就让程序判断有没有与数据表里的数据(客户编码)重合的,怎么判断的?我知道如果它是个主键,在运行时SQL会自己判断的,但我指如果需要我这么做。问题二:
 当我用双击一条DBGrid的记录(弹出个新窗体)重新编辑一条记录时,我没有动任何Edit或DBEdit的时候,我新窗体上的“保存”按钮的Enabled:=False,只有的动过了数据才为True,问题三:
  “ShowMessage('金额只能输入数字!')”像这样的异常窗体怎么样把把窗体的Caption=‘提示信息’

解决方案 »

  1.   

    1 OnExit : 
      if Query.Locate('Field', Edit.Text,[]) then ...
    2 Query.AfterScroll、AfterEdit、AfterPost等事件
    3 MessageBox
      

  2.   


    1、你用一个SQL去查一下有没有这个编码如果有那就重复了!2、新窗体的OnShow事件里把button1.Enable:=False;3、Application.Message('只能输入数字!','提示信息',mb_IconQuestion+Mb_OK);
      

  3.   

    1、3如上
    2:记录集有一个状态来表示当前记录是否改变,如修改、删除、新增
       button1.Enable:=DataSetName.rlChanged;//不记得如何拼写了,LOOK一下帮助
      

  4.   

    windindance能不能把问题一和问题二 讲的清楚点 ;50分
     adminis把问题三讲清楚点:  50分其它人可以补充,我马上可以放分了,因为我基本会了
      

  5.   

    我问题二 的意思是怎么判断数据集里的数据有没有被改变过(如果是DBEdit),?如果是Edit的话,怎么判断.text有没有被改过
      

  6.   

    问题三:
      “ShowMessage('金额只能输入数字!')”像这样的异常窗体怎么样把把窗体的Caption=‘提示信息’
    很简单呀
    Application.Messagebox('金额只能输入数字',‘提示信息’,MB_OK);
      

  7.   

    Application.Messagebox('金额只能输入数字',‘提示信息’,MB_OK);问题三就解决了
      

  8.   

    Application.Messagebox('金额只能输入数字',‘提示信息’,MB_OK);
      

  9.   

    2 : 可以直接在Edit.OnChange中处理。
      

  10.   

    补充一下第三点
    我觉得还不如在输金额的Edit控件的OnKeyPress事件中加一点代码:
    begin
     if not (key in ['0'..'9','.',#8]) then key:=#0;
    end;
    这样的话,如果输入的不是数字根本就输不进