FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#3
|
|||
|
|||
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? |
#4
|
||||
|
||||
I sería una variable de tipo Integer. La puedes declarar local al procedimiento donde tengas la rutina. Por ejemplo:
// Saludos |
#5
|
||||
|
||||
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. 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 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: Lo que hace es vaciar el contenido de la propiedad Text del Edit. Espero te sirva. Saludos |
#6
|
||||
|
||||
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:
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 |
#7
|
|||
|
|||
Te agradezco roman, pero la verdad es que no lo pude hacer funcionar.
Gracias y salu2 |
#8
|
||||
|
||||
En mi opinión muy personal, esa función FindComponent deberían eliminarla de la VCL. Usar FindComponent es como quere hacer de Delphi un lenguaje interpretado en donde se puede acceder a los objetos por sus nombres. Pero además, FindComponent es de por sí un ciclo sobre todos los componentes del formulario para buscar el que tenga el nombre dado, de manera que estaríamos haciendo un doble ciclo innecesario.
Si se requiere trabajar sistemáticamente con un grupo de controles, Edits en este caso, para mi lo mejor es declarar un arreglo:
llenarlo al momento de construir el formulario y entonces iterar sobre el arreglo cuando se necesario. // Saludos |
#9
|
||||
|
||||
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 |
#10
|
||||
|
||||
Cita:
Alguna vez usé FindComponent, lo reconozco, en casos puntuales, lo usé. Resulta mucho más cómodo, rápido y fiable usar un bucle como el que pusiste. Saludos |
#11
|
||||
|
||||
Cita:
// Saludos |
#12
|
||||
|
||||
Si no mal recuerdo, en Visual Basic puedes colocar arreglos de controles en el formulario. Es algo que siempre he pensado que hace falta en Delphi, precisamente para manejar estas cuestiones. Claro, no hay muchas otras cosas más que extrañe de VB
// Saludos |
#13
|
||||
|
||||
Es que en VB directamente un componente, tiene la propiedad Index (o algo así)
Y cuando tú asignas un nombre a un componente y luego a otro, le asignas el mismo, te salta un mensaje de aviso: "Quieres crear una matriz". Dices que sí, y a partir de ese momento los dos componente pasan a llamarse: Edit(1) y Edit(2) Yo empecé con VB antes que con Delphi, y no cambio por nada Delphi, pero eso si lo vi claro cuando cogí Delphi la primera vez: se pueden crear matrices de componentes?? La respuesta fue clara: no!! (más adelante descubrí que no era verdad, pero no del mismo modo que en VB) Es lo único que hecho de menos. Saludos |
|
|
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 |
|