XSIforum.com

Script sencillo al que quiero que el usuario le pase los datos de entrada

0 Usuarios y 1 Visitante están viendo este tema.

Yo me hago una función que llamo como la última operación del script para que se autoelimine (si es que hace falta, como en este caso), es bastante simple :)

Código: [Seleccionar]
function closePPG(myCP){
DeleteObj(myCP);
PPG.close();
};

por myCP me refiero a la variable que contiene el Custom Property O0

Espero que sea de ayuda, suerte!

Muchas gracias por los comentarios. Ya he conseguí lo que me comentabáis, aunque resulta que una vez que lo hago, me doy cuenta de que es muy interesante no destruir el PPG y dejarlo en el Object Explorer, ya que almacena el número de filas y de columnas, así como el valor de la última celda renderizada. De otro modo, no lo alamacenaría y es un peñazo (cuando veais el script entenderéis a lo que me refiero).

Bueno, pues resulta que tengo el script prácticamente terminado, a falta de solucionar un problema que me está volviendo loco y que seguro que es una chorrada.

Resulta que desde un evento de pulsación de boton llamado RenderCrop_Apply_OnClicked() quiero llamar a una función llamada SetCrop() y que tengo definida más arriba. Pues bien al ejecutar en XSI me da un error apuntando a la línea donde llamo a la función diciendo que "se esperaba un objeto". Es como si desde el evento no viese la función que tengo definida más arriba ¿?

Podría copiar todo el código de la función dentro del evento, pero como se trata de aprender por qué me da este error, por eso lo pregunto. :)



Unaided

  • ***
  • 3293
Ya te puedes dar prisa con tu plugin, porque XSI 7 trae una herramienta para hacer slice image xDDDDDDD

alanf

  • *****
  • 6029
  • Pipeline Developer @ Felix & Paul Studios
Ya te puedes dar prisa con tu plugin, porque XSI 7 trae una herramienta para hacer slice image xDDDDDDD

Donde? ???

mmm... la función SetCrop() se la estás asignando a una variable??? ('var mycrop = SetCrop();' ? )
Retorna algo la función? quizás no tiene un 'return *algo*' y no sabe que asignar a la hipotética variable mycrop.

Por otro lado... la funcion que elimina el ppg yo la llamaba al final de todo, es lo último que hace, el PPG puede servir perfectamente como un almacenador de variables (puedes tener parameters no expuestos en el PPG que sirven muy bien para guardar cosas útiles durante la ejecución). Seguro que no te digo nada nuevo y no lo autoeliminas por la forma en que funciona tu script, cada script es un mundillo :)

Jejeje, de hecho en la versión 6 ya existe algo parecido a un slice y que es lo que estoy utilizando en mi script. Cuando lo publique (que espero que sea mañana) os explico todo.

César, no lo asigno a nada y por tanto no hago un return... es algo raro. Por ahora lo pongo dentro del function y cuando librere el código le echas un vistazo y me dices. :-)

Aprovecho para una última duda. Me acabo de dar cuenta de que cuando le digo que mi imagen tendrá (por ejemplo) 2 filas por 2 columnas y luego tengo que seleccionar la celda a renderizar no hay ningún problema ya que en los campos de fila y columna a renderizar pongo menor valor permitido 1, mayor valor permitido 2.

El problema viene cuando le digo que mi imagen tendrá (por ejemplo) 1 fila por 2 columnas. En este caso el campo fila a renderizar deberá tener un valor mínimo permitido a 1 y un valor máximo permitido de 1. Esto al usar la función

EditParameterDefinition( PPG.setSelectedRow, null, null, Min, Max, MinUI, MaxUI ) ;

Me da un error ya que Min, Max, MinUI y MaxUI valen todos 1 y por lo visto los valores Max deben ser mayores que los Min. ¿Entonces como hago para controlar que no me metan nada distinto a un 1?

Gracias de nuevo

Por cierto he probado a poner el atributo siUINoSlider a true para que el control no sea de tipo Slilder sino de campo de texto numérico, y también me da error.

El problema viene cuando le digo que mi imagen tendrá (por ejemplo) 1 fila por 2 columnas. En este caso el campo fila a renderizar deberá tener un valor mínimo permitido a 1 y un valor máximo permitido de 1. Esto al usar la función

EditParameterDefinition( PPG.setSelectedRow, null, null, Min, Max, MinUI, MaxUI ) ;

Me da un error ya que Min, Max, MinUI y MaxUI valen todos 1 y por lo visto los valores Max deben ser mayores que los Min. ¿Entonces como hago para controlar que no me metan nada distinto a un 1?
No sé si entendí bien pero si el único valor posible en ese caso es 1 para que pedírselo al usuario? yo en tu lugar lo setearía manualmente a 1 con el script y redibujaría el PPGLayout sin el campo o bien (y más simple) lo congelaría para que no fuera editable ('parametro.ReadOnly = True') :)

Si el usuario sólo puede elegir una opción no tiene mucho sentido preguntársela :)
« Última modificación: 08 Agosto 2008, 03:14:20 por César Sáez »

Por cierto he probado a poner el atributo siUINoSlider a true para que el control no sea de tipo Slilder sino de campo de texto numérico, y también me da error.

Por acá funciona perfecto, quizás el atributo no lo estás estableciendo con SetAttribute, prueba algo asi:

PPGItem.SetAttribute(siUINoSlider, True);

donde PPGItem es el item en tu PPGLayout O0

Muchas gracias.

Lo de deshabilitar el campo y aisgnarle el valor que debe tomar es la mejor opción sin duda.