小编Gue*_*est的帖子

我可以使用泛型对相似类型的控件执行相同的操作吗?

我正在使用Delphi 2010,我有一个单元,多年来我添加了自己的程序和功能,可以用于我所做的任何项目,例如:

function ListBoxIsSelected(ListBox: TListBox): Boolean;
begin
  Result:= ListBox.ItemIndex <> -1;
end;
Run Code Online (Sandbox Code Playgroud)

上面的用途TListBox作为参数,所以只要使用上述功能我必须提供一个listbox即是TListBox类.

现在假设我有一些其他组件库可以使用相同的函数,例如Jedi组件类.

我怎么能使用上述功能,当绝地listboxTJvListBox阶级和我的功能是寻找TListBox类?虽然两个组件实际上是相同的,但类名是不同的.如果我专门为TJvListBox它提供相同的功能,它可能会起作用,因为它们都是"列表框":

function ListBoxIsSelected(ListBox: TJvListBox): Boolean;
begin
  Result:= ListBox.ItemIndex <> -1;
end;
Run Code Online (Sandbox Code Playgroud)

现在,我需要将组件作为参数传递,以相同的方式编写完整的过程和函数.只是为了使用不同的组件类而不得不重写它们是不可行的!

我怎么能用泛型写这个?

delphi generics

7
推荐指数
2
解决办法
271
查看次数

标签 统计

delphi ×1

generics ×1