Código Delphi
[-]
procedure TForm1.Limpia(T:TWincontrol);
begin
for i:= 0 to t.controlCount-1 do
begin
if controls[i] is TEdit then TEdit(controls[i]).Clear
else if controls[i] is TDBEdit then TDBedit(controls[i]).Datasource := nil
else if controls[i] is TwinControl then Limpia(controls[i]) end;
Obviamente lo estoy haciendo de memoria ya que no tengo delphi a mano, ahora deben estar corregidos los dos errores.
Saludos