![]() |
Cómo lograr que un mismo procedimiento funcione para varios arreglos?
Saludos, señores. Estoy trabajando con varios arreglos y preciso que un mismo procedimiento funcione para todos ellos. Cada arreglo guarda distintos números, números que alguien introduzca a través de un Edit. Es decir:
Elem1[dim1]:=2,4,1 Elem2[dim2]:=9,8 Elem3[dim3]:=8,5,3 Tengo este procedimiento, que ordena el arreglo de menor a mayor: Ahora como bien dicta la pregunta, ¿cómo puedo lograr que funcione para mis tres arreglos? Ya que este procedimiento solo me funciona para "Elem1". Intente pasar Elem2[dim2]=9,8 a Elem1[dim1] y desde ahí ordenarlo, y luego pasarlo de Elem1 a Elem2 nuevamente, -funciona- pero interfiere con otros procedimientos que tengo. PD: No puedo usar Sort's. Muchas gracias y saludos. ^\||/ |
Para eso se utilizan los parámetros en procedimientos y funciones.
Revisa estos links o si buscas en internet encontrarás muchos más. http://docwiki.embarcadero.com/RADSt...ctions_(Delphi) http://docwiki.embarcadero.com/RADSt...meters_(Delphi) Se trata al final de modificar ese procemiento para que admita un parámetro de tipo array. De esa forma funcionará con todos los arrays (siempre que sean similares). Haz pruebas y si no te sale comenta lo que has hecho aquí y iremos ayudándote. |
Cita:
Hum, me falto decir que quería el mismo procedimiento para cada arreglo, y cada arreglo tiene su propio botón. No buscaba que con un solo botón se me ordenaran todos mis arreglos sino, solo los que yo quisiera. Encontré otra manera, bueno, al menos funciona -llorando por dentro-: Cree dos procedimientos más y luego desde el programa principal hago la llamada: Lo hago de esta manera para darle independencia a cada arreglo y que cuando haga una operación, el arreglo 2 o 3 no se una al 1 y viceversa. Cómo habrás notado, estoy en pañales, trato de aprender, pero "¿arreglos en parámetros?" No, aún no he visto a fondo este tema. Te agradezco por tu tiempo y si tienes algún consejo para hacer más pequeño todo este código, o para no darle tantas vueltas al asunto, estoy más que dispuesto a leerte, gracias. |
No se entiende lo que quieres y el codigo no ayuda.
Como debe quedar los datos ordenados? |
Cita:
|
Cita:
|
¿Por qué pasan un parámetro de nombre dim?
¿No debería bastar con usar low y high? algo como Código:
for i:= low(v) to high(v) do |
Cita:
Y también se puede usar la función Length para saber la longitud del array, pero en este caso (yo al menos) no quise distraerle con más cosas que no fueran estrictamente del problema que tenía este usuario. Tal vez él lo ve más claro así. Una vez solucionado el problema, se le puede añadir ese comentario como "mejora/optimización". |
No me permiten llamar a las funciones del programa, como ser Length, o esas mismas Low, High.
Simplemente no quería parecer descortés no contestando sus observaciones. Gracias por los consejos. |
La franja horaria es GMT +2. Ahora son las 13:03:12. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi