是否可以对一个例程有2个引用,即以某种方式组合这些:

procedure SetUpGrid(AGrid: TStringGrid);
procedure SetUpGrid(AGrid: TJVStringGrid);


procedure SetUpGrid(AGrid: ??);
Begin
...


将有两个过程,但是这个过程是相同且冗长的,只需要对其他过程使用不同的网格即可。

最佳答案

我怀疑来自Jedi VCL。在这种情况下,它是TJvStringGrid的后代,它是TJvExStringGrid的直接后代,您无需做任何特别的事情,因为一个类(TJvStringGrid)从另一个类(TStringGrid)继承。

您可以使用最常见的类(在本例中为TStringGrid)声明过程:

procedure SetUpGrid(AGrid: TStringGrid);


并将其传递给TJvStringGrid的实例。

例如:

procedure SetUpGrid(AGrid: TStringGrid);
begin
  // Whatever your code does to set up the grid.
end;

procedure TForm1.SomeGridToSetup;
var
  ASimpleTStringGrid: TStringGrid;
  AJediVclStringGrid: TJvStringGrid;
begin
  ASimpleTStringGrid := TStringGrid.Create(Self);
  AJediVclStringGrid := TJvStringGrid.Create(Self);

  SetUpGrid(ASimpleTStringGrid);
  SetUpGrid(AJediVclStringGrid);
end;

关于delphi - 引用具有不同变量的例程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6717554/

10-11 00:23