Ver Mensaje Individual
  #7  
Antiguo 05-04-2007
Byfed Byfed is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Reputación: 0
Byfed Va por buen camino
lo encontré!!

Al final resultó ser una chorradilla...

Creé un fichero (suelo crearlo para meter en él todos los procedimientos "reutilizables") llamado unitFunciones que de momento solo contiene ésto:
Código:
unit UnitFunciones;

interface

uses Forms, StdCtrls;

procedure limpiar_detalle(frame: Tframe);

implementation

procedure limpiar_detalle(frame: Tframe);
var
   i : integer;
begin
   for i:=0 to frame.ComponentCount-1 do
      begin
         if (frame.Components[i] is TEdit) then
            Tedit(frame.Components[i]).text := '';
         if (frame.Components[i] is TCheckBox) then
            TcheckBox(frame.Components[i]).checked := false;
         if (frame.Components[i] is TMemo) then
            TMemo(frame.Components[i]).text := '';
         if (frame.Components[i] is TComboBox) then
            begin
               TComboBox(frame.Components[i]).text := '';
               TComboBox(frame.Components[i]).itemindex := -1;
            end;
      end;
end;

La llamada la hago desde el init de cada uno de los frames, haciendo:

Código:
limpiar_detalle(FormPrincipal.FrameClientes1);
y voilá...

Si me hubiera puesto a investigar esto antes.. cuántas horas de trabajo me había ahorrado... El ultimo programa que hice tenía unos 20 frames, y limpiaba los campos uno a uno!!!.. no se cuantas líneas de código.. pero una burrada.. bueno, de los errores se aprende.

Gracias a todos.
Responder Con Cita