Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2006
huwabe78 huwabe78 is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Poder: 0
huwabe78 Va por buen camino
demasiados edit para borrar

Consulta, en un form tengo varios edit, hay alguna manera de borrar varios edit al mismo tiempo en lugar de estar poniendole a cada edit .clear luego que los utilizo?

gracias y salu2
Responder Con Cita
  #2  
Antiguo 29-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Código Delphi [-]
for I := 0 to ComponentCount - 1 do
  if Components[i] is TEdit then
    TEdit(Components[i]).Clear;

Con esto borrarías todos los Edit en el formulario.

// Saludos
Responder Con Cita
  #3  
Antiguo 29-11-2006
huwabe78 huwabe78 is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Poder: 0
huwabe78 Va por buen camino
Te pido disculpas por no entender, soy estudiante y estoy tratando de iniciarme, por favor te pido paciencia, pero no comprendo a que se refiere esta parte:
for I := 0 to ComponentCount - 1 do

Como que tengo que declarar la I?
Responder Con Cita
  #4  
Antiguo 29-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
I sería una variable de tipo Integer. La puedes declarar local al procedimiento donde tengas la rutina. Por ejemplo:

Código Delphi [-]
procedure TForm1.LimpiarEdits;
var
  I: Integer;

begin
  for I := 0 to ComponentCount - 1 do
    if Components[i] is TEdit then
      TEdit(Components[i]).Clear;
end;

// Saludos
Responder Con Cita
  #5  
Antiguo 29-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, para que te aclares un poco:

ComponentCount es una variable que contiene el nº de componentes que conforman el formulario actual.
Components es una matriz de componentes, que contiene punteros a todos los componentes del formulario.

Código Delphi [-]
if Components[i] is TEdit then
Aquí se busca si el elemento al que apunta "i" en la matriz, es un componente de l tipo TEdit, que en este caso es lo que nos interesa

Código Delphi [-]
TEdit(Components[i]).Clear;
Aquí accedemos al componente de tipo Tedit del formulario y lo que hace es borrar el contenido de ese campo.
Otra alternativa podría ser:
Código Delphi [-]
TEdit(Components[i]).Text := '';
Lo que hace es vaciar el contenido de la propiedad Text del Edit.

Espero te sirva.

Saludos
Responder Con Cita
  #6  
Antiguo 29-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Otra forma de hacerlo podría ser usando la función FindComponent. Esto podrías usarlo en el caso en que tus edits tenga el mismo nombre común y un indice. Es decir, tener cinco edits y que los llames así:
Edit1
Edit2
Edit3
Edit4
Edit5

Puedes usar la función FindComponent para acceder directamente al componente en cuestión, o hacer un bucle y vaciar los todos.

Por ejemplo para el caso de los 5 edits:

Código Delphi [-]
var x : Integer;
begin
   for x := 1 to 5 do begin
      (FindComponent('Edit' + IntToStr(x)) as TEdit).text := '';
   end;
end;

En este caso como sabemos que tenemos 5 edits se lo indicamos en el bucle.
Y para cada uno buscamos con la función FindComponent (que necesita como parametro un nombre de componente = propiedad name), que en nuestro caso tiene todos en común "Edit" y una parte numérica que la llamamos X. Hay que hacer un cast de esta X, ya que la función espera un parámetro de tipo string. Después se especifica si el componente encontrado es del tipo TEdit. Y luego hacemos lo mismo que arriba, vaciamos su Text.
Me ha quedado un poco lioso, así que si tienes dudas aquí estamos.

Saludos
Responder Con Cita
  #7  
Antiguo 29-11-2006
huwabe78 huwabe78 is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Poder: 0
huwabe78 Va por buen camino
Te agradezco roman, pero la verdad es que no lo pude hacer funcionar.

Gracias y salu2
Responder Con Cita
  #8  
Antiguo 29-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Por que razón no lo hiciste funcionar? Te dió algún error? Muéstranos el error y el código que pusiste para ayudarte.

Saludos
Responder Con Cita
  #9  
Antiguo 29-11-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por huwabe78
Te agradezco roman, pero la verdad es que no lo pude hacer funcionar.
Mira el ejemplo que adjunto a ver si te aclara un poco.

// Saludos
Archivos Adjuntos
Tipo de Archivo: zip LimpiarEdits.zip (1,7 KB, 23 visitas)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
demasiados access violation ingel Varios 17 20-09-2006 03:53:25
Demasiados Caracteres en QReport JANDREGUE Impresión 1 24-04-2005 09:01:57
Metodo para borrar directorio VolaRe Varios 4 25-07-2004 16:29:52
Demasiados usuarios (2) muli Firebird e Interbase 6 11-05-2004 13:38:38
demasiados decimales Irina Varios 2 19-06-2003 14:24:33


La franja horaria es GMT +2. Ahora son las 12:37:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi