我不明白
还有一个问题:close和terminate有何区别?

解决方案 »

  1.   

    1.parameter本身并不和后台数据库数据进行比较,而是传递参数给SQL语句进行查询;
    2.procedure TCustomForm.Close;
    var
      CloseAction: TCloseAction;
    begin
      if fsModal in FFormState then
        ModalResult := mrCancel
      else
        if CloseQuery then
        begin
          if FormStyle = fsMDIChild then
            if biMinimize in BorderIcons then
              CloseAction := caMinimize else
              CloseAction := caNone
          else
            CloseAction := caHide;
          DoClose(CloseAction);
          if CloseAction <> caNone then
            if Application.MainForm = Self then Application.Terminate
            else if CloseAction = caHide then Hide
            else if CloseAction = caMinimize then WindowState := wsMinimized
            else Release;
        end;
    end;
    看上面这段程序,如果是mainform是没有区别,但如果是子窗口的话,以下就不用说了,自已看程序.
      

  2.   

    要说比较的话:
    parameter[0].value:=..........注意,它是变体类型,也就是说一般情况下,它能进行类型转换。但是程序效率来说,使用变体速度要慢一些(可能人是不好觉察的)close和terminate有何区别?主窗体调用close 程序就结束了,非主窗体调用close就隐藏(除非你让Action:=caFree) 
    而无论在程序何处调用Application.terminate 程序就关闭。