¡Hola,
steelha!
Cuando estás recorriendo los controles del control padre (PageControl), el solo puede observar los controles contenidos en el, los que en este caso serán los TabSheet. Para manipular los controles que se encuentran dentro de cada TabSheet debes volver a llamar la función pasando como parámetro el control padre correspondiente.
Este código puede que te sea de ayuda:
Código Delphi
[-]
procedure TfrmPacientes.ResetControlValues(Parent: TWinControl);
var
i: integer;
begin
if Parent.ControlCount <= 0 then
Exit;
for i := 0 to Parent.ControlCount - 1 do
begin
if Parent.Controls[i] is TMemo then
(Parent.Controls[i] as TMemo).Lines.Clear
else
if Parent.Controls[i] is TEdit then
(Parent.Controls[i] as TEdit).Clear
else
if Parent.Controls[i] is TComboBox then
(Parent.Controls[i] as TComboBox).ItemIndex := -1
else
if Parent.Controls[i] is TCheckBox then
(Parent.Controls[i] as TCheckBox).Checked := False
else
if Parent.Controls[i] is TWinControl then
ResetControlValues((Parent.Controls[i] as TWinControl));
end;
end;
procedure TfrmPacientes.limpiar;
begin
ResetControlValues(PageControl1);
end;