Power Builder - Auxilio con código

 
Vista:

Auxilio con código

Publicado por luz (12 intervenciones) el 10/10/2002 17:54:18
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 coordenas 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 toodas 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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Auxilio con código

Publicado por juan (89 intervenciones) el 10/10/2002 18:53:30
Para crear objectos dinamicamente utiliza la funcion openuserobject( userobjectvar, userobjecttype {, x, y } ), como el userobjecttype es un dragobject, puedes crearte un vector de tipo dragobject ( dragobject ldr_objetos[] ) entonces cada vez que hagas el openuserobject aumentar en uno la dimension del vector de forma que el vector tendra tantas posiciones como elementos hayas creados

Espero te sirva, si necesitas alguna aclaracion no dudes en consultarme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Auxilio con código

Publicado por Luz (12 intervenciones) el 11/10/2002 04:34:41
Gracias Juan, respecto a tu sugerencia, tengo una duda: puedo usar como vector un vector de líneas? o debo usar necesariamente un objeto de usuario, de ser así cómo puedo manipular las líneas?
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Auxilio con código

Publicado por juan (89 intervenciones) el 11/10/2002 09:12:44
Al ser un vector de tipo dragobject, podras acceder directamente a las propiedades basicas como visible y tal, si te has definido una nueva clase de linea con sus propiedades y variables entonces tendras que tener otro vector de tu tipo de linea y despues de hacer el openuserobject hacer la asignacion vectorlineas[i] =vectordragobject[i]

Espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar