Permíteme poner otro ejemplo con controles más estandard para ver si estoy entendiendo.
Vamos a suponer que deseo procesar datos ya sea de un ListView o de un StringGrid por igual. Dado que desde un punto de vista lógico ambos no son otra cosa que una matriz podría definir:
Código:
IMatriz = interface
function Celdas(Ren, Col: Integer): String;
end;
y luego crear descendientes de ListView e StringGrid que implementen esta interfaz:
Código:
TrmListView = class(TListView, IMatriz)
function Celdas(Ren, Col: Integer): String;
end;
TrmStringGrid = class(TStringGrid, IMatriz)
function Celdas(Ren, Col: Integer): String;
end;
de manera que a quién procese la información le puedo simplemente dar la interfaz según sea el caso.
De ser así, sí, sí me convences.
// Saludos