Auxilio con código

Hola Amigos,
Debo realizar un gráfico que puede tener entre 16 y 196 líneas, que deben ser flechas de uno o dos sentidos, inicialmente no sé cuántas, ni si el sentido es doble o sencillo.
Las líneas, generalmente estarán inclinadas y es importante la precisión.
He creado una rutina que es capaz de formar, con dos líneas pequeñas, una flecha en el extremo de la línea inicial; y otra rutina, para asignar las coordenadas de las lineas empleadas.
También he creado una estructura para pasar a la rutina las coordenadas y la línea en cuestión, esto es:
lstr_linea.xi
lstr_linea.yi
lstr_linea.xj
lstr_linea.yj
lstr_linea_ln_linea
El problema que tengo, es cómo asignar el nombre de línea para el llamado de la rutina porque si hago
lstr_line.ln_linea=ln_1 , etc. Al momento que tenga 196 líneas tendré 196 asignaciones, si las líneas están invisibles (porque no se cuántas son) debo hacerlas visibles
ln_1.visible, etc.
Con lo cual, para cubrir todas las asignaciones, tomando en cuenta las 4 líneas adicionales de los extremos, me da más de 1000 líneas de código (puede que la ventana no corra por tamaño)
¿No existe una forma de crear DINÁMICAMENTE las líneas y luego poder pasarlas a la estructura?, algo que me permita usar
"ln_"+string(I) con I desde 16 hasta 196 y luego hacer la asignación a la estructura???????
Cómo hago visibles o invisibles las líneas sin tener que escribir las 196 instrucciones? Ln_1.visible=true, ln_2.visible=true .....etc. Ln_1.visible=false, ln_2.visible=false .....etc.????
Muchas gracias a quien pueda ayudarme.

1 Respuesta

Respuesta
1
Un par de consideraciones:
1. Si estás creando las lineas en una DW (yo lo haría) podes usar la sentencia dw_1. modify(mod_string)
Te recomiendo que veas la ayuda de PB en esto para los detalles y algunas consideraciones sobre el uso de comillas.
ej: //crear una linea llamada linea_aldob
//nota los ~ antes de un "
dw_articulo.modify("create line(band=detail x1=~"1038~" y1=~"16~" x2=~"1175~" y2=~"68~" name=linea_aldob pen.style=~"0~" pen.width=~"5~" pen.color=~"0~" background.mode=~"2~" background.color=~"16777215~" )")
//despues con el modify() podes modificarle las propiedades
ej:
dw_articulo.modify("linea_aldob.y2 = ~"16~"")//modifico y2
dw_articulo.modify("linea_aldob.visible = '0'")//la hago invisible
2.Usa arreglos para guardar tus lineas
O las estructuras que contienen a tus lineas
ej: estructura
nom_linea
x1, x2
y1, y2
después con el modify en un loop las vas creando
también puedes tienes un arreglo de lineas directamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas