Der einfachste Weg bei nicht grafischen Elementen wäre eigentlich ohne Interface und dafür mit include zu arbeiten, wenn es nur um einfache Funktionen und Prozeduren geht.
Bei komplexeren Sachen mit grafischen Komponenten (und nötigem Inferface) lassen sich Funktionen und Prozeduren auch universell in Units auslagern, die vom Mainform des Hauptprogramms unabhängig sind.
Die jeweiligen Kompontenten werden dann einfach als Parameter übergeben.
Nurmal als Beispiel:
Delphi-Quellcode:
Procedure ClearGrid(sg: TStringGrid);
VAR
i: Integer;
BEGIN
WITH sg DO BEGIN
FOR i := 0 TO RowCount DO Rows[i].Clear;
RowCount:=2;
fixedRows:=1;
END;
END;
Procedure ClearGrid(sg: TStringGrid); und Aufruf im Hauptprogramm durch
Delphi-Quellcode:
procedure TForm1.ClearGrids;
VAR
i: BYTE;
begin
for i:=1 to 7 DO ClearGrid(FindComponent('StringGrid'+IntToStr(i)) as TStringGrid);
end;