![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
solución parcial.. una vuelta de tuerca más..
Encontré la solución haciendo lo siguiente:
Código:
procedure TFrameClientes.limpiar_detalle;
var
i : integer;
begin
for i:=0 to FormPrincipal.FrameClientes1.ComponentCount-1 do
begin
if (FormPrincipal.FrameClientes1.Components[i] is TEdit) then
Tedit(FormPrincipal.FrameClientes1.Components[i]).text := '';
if (FormPrincipal.FrameClientes1.Components[i] is TCheckBox) then
TcheckBox(FormPrincipal.FrameClientes1.Components[i]).checked := false;
if (FormPrincipal.FrameClientes1.Components[i] is TMemo) then
TMemo(FormPrincipal.FrameClientes1.Components[i]).text := '';
if (FormPrincipal.FrameClientes1.Components[i] is TComboBox) then
begin
TComboBox(FormPrincipal.FrameClientes1.Components[i]).text := '';
TComboBox(FormPrincipal.FrameClientes1.Components[i]).itemindex := -1;
end;
end;
end;
Que no lo tenga que escribir para cada frame.. sino que el frame fuera un parámetro y poder llamar al procedimiento como: limpiar_detalle(FrameClientes1); ¿Alguien sabe cómo? Salu2 |
|
#2
|
||||
|
||||
|
Con el código que te di mas arriba, lo puedes hacer. El procedimiento capta un parametro de la clase TFrame.
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
#3
|
||||
|
||||
|
Una pregunta,...Por qué no destruyes el Frame? antes de llamar al próximo.
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
#4
|
|||
|
|||
|
Cita:
Salu2 |
|
#5
|
|||
|
|||
|
Cita:
Salu2 |
|
#6
|
|||
|
|||
|
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); 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. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Crear Procesos Hijos | ---baja--- | API de Windows | 3 | 06-07-2006 20:07:47 |
| Formulario MDI e Hijos | chux | OOP | 7 | 07-12-2005 21:19:14 |
| multiples hijos en un TTreeView | bustio | OOP | 1 | 23-11-2005 09:42:03 |
| Forms Hijos | djj | OOP | 9 | 31-10-2004 02:16:27 |
| ...14 hijos... | Jure | Humor | 0 | 18-08-2004 00:55:03 |
|