我的formshow时间里写的下拉列表框的自动加载代码,第一次打开窗口能顺利加载,但我把数据库里的内容改过以后重新打开窗口出来的还是以前的内容,只能把程序关闭重新打开才能改过来,请问各位高手这是什么原因,有什么办法可以解决,谢谢!!

解决方案 »

  1.   

    你怎么show的???
    如果你觉得不好,就加到oncreate里面,那就没问题了(当然了,跟你怎么创建和show还是有关)
      

  2.   

    尝试一下先Form.Hide,然后Form.Show,这样便会产生一次OnShow事件。
      

  3.   

    模版是别人做好的,他好象是用testclick(sender);这句话来打开窗体的,应该怎么改!!
      

  4.   

    procedure Tclientgrpform.ToolButton2Click(Sender: TObject);
    begin
      inherited;
      testclick(sender);
      with dm.group do
      begin
         edit;
         clientgrpeditform.FlatEdit1.Text:=FieldByName('areaid').AsString;
         clientgrpeditform.FlatEdit2.Text:=FieldByName('areaname').AsString;
         clientgrpeditform.FlatMemo1.Text:=FieldByName('AreaMemos').AsString;
      end;
      clientgrpeditform.FlatEdit1.Enabled:=false;
      clientgrpeditform.ShowModal;
    end;
      

  5.   

    没看出来 testclick(sender); 是如何显示一个窗体的clientgrpeditform.ShowModal; 这一句倒是模式化显示了一个窗体
      

  6.   

    procedure Tclientform.ToolButton2Click(Sender: TObject);
    begin
      inherited;
      testclick(sender);
      with dm.client do
      begin
         edit;
         clieneditform.RzEdit1.Text:=FieldByName('fCode').AsString;
         clieneditform.RzEdit2.Text:=FieldByName('fName').AsString;
         clieneditform.RzComboBox3.Text:=FieldByName('fSex').AsVariant;
         clieneditform.RzDateTimeEdit1.Text:=FieldByName('fDate').AsString;
         clieneditform.RzComboBox1.Text:=FieldByName('fDepartment').AsString;
         clieneditform.RzEdit3.Text:=FieldByName('fDepCode').AsString;
         clieneditform.RzEdit4.Text:=FieldByName('fBaseMoney').AsString;
         if FieldByName('fCount').AsVariant then
            clieneditform.RzCheckBox1.checked:=true
          else
            clieneditform.RzCheckBox1.checked:=false;
      end;
      clieneditform.RzEdit1.Enabled:=false;
      clieneditform.ShowModal;
    end;
    应该是这段