Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Repetición de la ejecución de un método
Message
From
06/04/2007 17:39:56
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Title:
Repetición de la ejecución de un método
Miscellaneous
Thread ID:
01213117
Message ID:
01213117
Views:
64
Buenas tardes a todos.

Tengo un formulario, que pasará a ser una clase, con un GRID, 2 spinners (día y año) y un combo para el mes. En el GRID se muestra un calendario anual o "PLANNING" utilizando un cursor de 12 registros (uno por mes) y 37 columnas (una por cada día del mes). Como cada día puede tener un backcolor diferente según se trate de un festivo, día de no atención, etc utilizo la propiedad DynamicBackColor para ello de esta manera:
LOCAL NADA8,NADA9
FOR Y = 1 TO 37
	NADA8 = 'MESES.C' + ALLTRIM(TRANSFORM(Y,"##"))  && MESES.C1 ...C38 = CAMPO DEL CURSOR QUE INDICA EL COLOR DE FONDO
	NADA9 = 'COLUMN' + ALLTRIM(TRANSFORM((Y+1),"##")) && NOMBRE DE LA COLUMNA
	IF THIS.GRID1.&NADA9..Header1.Caption == 'Do'   && SE TRATA DE UN DOMINGO
		THIS.GRid1.&NADA9..DynamicBackColor = "RGB(255,128,128)"
	ELSE
		THIS.GRid1.&NADA9..DynamicBackColor = "IIF (&NADA8= 0,RGB(255,255,255),IIF (&NADA8 = 1,RGB(255,128,128),RGB(0,255,255)))"
	ENDIF
NEXT
Este código lo había colocado en un método propio denominado "REFRESCO" que llamo en el INIT del formulario y en el método INTERACTIVECHANGE de los spinners de día y año y en el INTERACTIVECHANGE del combo del mes. Al hacerlo así observé que el formulario demoraba mucho en cargar. Trasladé el código al INIT del formulario y la carga es rápida como siempre y deduje que la demora se debía a que el mismo código se estaba ejecutando varias veces al cagar el formulario. Entonces se me plantean dos o tres preguntas:

1.- ¿Los métodos INTERACTIVECHANGE de los spinners y del combo se ejecutan al INIT del formulario y por tanto eso hacía que el código se repitiera hasta cuatro veces al cargar el formulario justificando la demora?

2.- ¿La propiedad DynamicBackColor de cada columna queda fijada independientemente del contenido del cursor? Dicho de otra manera: observo que al cambiar el cursor cambian los colores aunque ya no se vuelve a ejecutar el código. Es decir funciona bien, pero no entiendo por qué ya que no ejecuto el código y sin embargo el backcolor funciona de acuerdo al contenido del cursor.

3.- ¿Es correcta la forma en que estoy tratando el problema o debería utilizar otro enfoque?.

Gracias anticipadas por sus ayudas.

Saludos cordiales

Manuel Tovar
Barranquilla - COLOMBIA
Reply
Map
View

Click here to load this message in the networking platform