Page 1 of 1

Parametros a pasar al codeblock

Posted: Mon Oct 10, 2011 1:13 pm
by RSalazarU
Saludos Equipo de FiveWin:

Yo trabajo bastante con los Codeblocks, ya que permiten facilitar el trabajo.

Por esto les pido por favor, si fuera posible, en la clase TXBrwColumn que la evaluación de bStrData envié el parámetro self.

Es decir, cambiar de :

Code: Select all

   :
   if ( ::bStrData == nil .or. Eval( ::bStrData ) == nil ) .and. ....
   :
   :
   cText := Eval( ::bStrData )
   :
 
Por:

Code: Select all

   :
   if ( ::bStrData == nil .or. Eval( ::bStrData, Self ) == nil ) .and. ....
   :
   :
   cText := Eval( ::bStrData, Self )
   :
 

El problema de ESTANDARIZAR los Parámetros a pasar a los codeblocks también se da acá, en el código:

Code: Select all

      nBmpNo := Eval( ::bBmpData, ::Value() )
 
En versiones anteriores no se pasaba nada, y yo modifique la clase de esta forma:

Code: Select all

      nBmpNo := Eval( ::bBmpData, self )
 
Este código te permite acceder a los DATA y METHOD de la clase.

Sin embargo si se trata de minimizar código, yo haría algo genérico como esto:

Code: Select all

      Eval( ::bCodeBlock>, ::VarGet(), Self, ::oWnd, <uparam..>, <Uparam..> )
 
- Coloco primero VarGet(), porque normalmente es con lo que mas se trabaja y se lo necesita a mano
- Luego el mismo objeto
- y luego el padre, que es algo con lo que se trabaja bastante

Con las siguientes reglas:
si es una clase que NO desciende de TControl y no tiene la DATA bSetGet, no se envía este parámetro
si es una clase que NO desciende de TWindows y no tiene la DATA oWnd, no se envía este parámetro

la idea es generalizar el orden del envió de los parámetros.

y claro que tendremos problemas con el código actual, como por ejemplo:

Code: Select all

:
If( ::bUnZip != nil, Eval( ::bUnZip, nPercent ),)
:
If( ::bZip != nil, Eval( ::bZip, nZipInfo ),)
:
 
Tal vez seria posible hacer esto para los codeblocks que aun no se los ha implementado.


Bueno, es una idea.


Atentamente,

Rolando.

Saludos desde Cochabamba, Bolivia.