从delphi中的表单刷新框架

时间:2016-01-29 02:54:40

标签: delphi

我将一个框架添加到vcl表单并将框架链接到该框架。在我调用框架中的函数的形式,以查看网格中的数据。功能正常。网格没有显示任何变化。框架中有另一个按钮,它调用相同的功能,当我点击它的工作。我怎么能这样做?

此代码的格式为

procedure TMainF.RefrshFramebtnClick(Sender: TObject);
var PatientHistoryFr: TPatientHistoryFr;
begin
  PatientHistoryFr := TPatientHistoryFr.Create(Application);
  PatientHistoryFr.RefreshGrid;
  PatientHistoryFr.Free; 
end;

此代码在框架中(TPatientHistoryFr是框架)

procedure TPatientHistoryFr.RefreshGrid;
begin
  if HistoryQr.Active then
    HistoryQr.Close;
  HistoryQr.SQL.Text := 'select * from doctor';
  HistoryQr.Open;
end;

不工作:

click the button in the form(not working)

工作:

click the button in the frame(working)

3 个答案:

答案 0 :(得分:2)

它很简单。

FrameHistory.RefreshGrid;
这就是全部。 FrameHistory是帧上的帧。谢谢大家。

答案 1 :(得分:1)

在完全相同的程序中调用RefreshGrid后,您立即释放PatientHistoryFr。如果它被销毁,你什么时候可以展示什么呢?

答案 2 :(得分:0)

如果我明白,你想要什么。 首先,这一行:

PatientHistoryFr := TPatientHistoryFr.Create(Self);

仅创建一个框架,但框架没有父框架 - 它不可见。 添加以下行:

PatientHistoryFr.Parent := Self;

这将显示框架。然后致电

PatientHistoryFr.RefreshGrid;
祝你好运:)