En este capitulo vamos a añadir 4 nuevas propiedades a nuestro supergridviews:
- color de fondo en filas impares
- color de fondo en filas pares
- color de letras en filas impares
- color de letras en filas pares
Y la subrutina colorear que haga posible esto.
Empezamos:
Abrimos el proyecto de supergridviews, nos vamos al archivo de clase llamado supergridviews, y
1) En la linea :
PUBLIC CONST _Properties AS String = "*,Tag2”
vamos a añadir nuestra nuevas variables para que aparezcan en el cuadro de propiedades:
PUBLIC CONST _Properties AS String = "*,Tag2,colorfondoimpar,colorfondopar,colorletraimpar,colorletrapar"
2) Definimos nuestras variables
'---------------------------------------------------------------
'variables de colore de fondo y de letras segun fila impar o par
'----------------------------------------------------------------
PROPERTY colorfondoimpar AS Integer
PRIVATE hcolorfondoimpar AS Integer
PRIVATE FUNCTION colorfondoimpar_Read() AS Integer
RETURN hcolorfondoimpar
END
PRIVATE SUB colorfondoimpar_Write(Value AS Integer)
hcolorfondoimpar = value
END
PROPERTY colorfondopar AS Integer
PRIVATE hcolorfondopar AS Integer
PRIVATE FUNCTION colorfondopar_Read() AS Integer
RETURN hcolorfondopar
END
PRIVATE SUB colorfondopar_Write(Value AS Integer)
hcolorfondopar = value
END
PROPERTY colorletraimpar AS Integer
PRIVATE hcolorletraimpar AS Integer
PRIVATE FUNCTION colorletraimpar_Read() AS Integer
RETURN hcolorletraimpar
END
PRIVATE SUB colorletraimpar_Write(Value AS Integer)
hcolorletrapar = value
END
PROPERTY colorletrapar AS Integer
PRIVATE hcolorletrapar AS Integer
PRIVATE FUNCTION colorletrapar_Read() AS Integer
RETURN hcolorletrapar
END
PRIVATE SUB colorletrapar_Write(Value AS Integer)
hcolorletrapar = value
END
3- Definimos la subrutina “pública que hará el trabajo:
'------------------------------------
'nueva funcion/subrutina de colorear
'------------------------------------
PUBLIC SUB colorear()
Ponercolorear(hcolorfondoimpar, hcolorletraimpar, hcolorfondopar, hcolorletrapar)
END
4- Definimos las subrutinas y funciones internas:
'-----------------------------------------------------------------------------
' colorear tabla....
'-----------------------------------------------------------------------------
PRIVATE SUB Ponercolorear(fondoimpar AS Integer, letraimpar AS Integer, fondopar AS Integer, letrapar AS Integer)
DIM a AS Integer
DIM b AS Integer
FOR a = 0 TO ME.rows.count - 1
IF Par(a) = FALSE THEN
FOR b = 0 TO ME.columns.count - 1
ME[a, b].BackgRound = fondoimpar
ME[a, b].Foreground = letraimpar
NEXT
ELSE
FOR b = 0 TO ME.columns.count - 1
ME[a, b].Background = fondopar
ME[a, b].Foreground = letrapar
NEXT
END IF
NEXT
ME.Refresh
END
PRIVATE FUNCTION Par(a AS Integer) AS Boolean
IF Round(a / 2, 0) * 2 = a THEN
'el numero es par
RETURN 1
ELSE
RETURN 0
END IF
ENDNota Importante: Comentar que podemos dividir en 4 zonas o secciones, un archivo de clases: 1) Donde definimos la herencia y la orden export INHERITS gridview EXPORT 2) Añadimos las propiedades que aparecerán en el cuadro de propiedades PUBLIC CONST _Properties AS String = "*,Tag2,colorfondoimpar,colorfondopar,colorletraimpar,colorletrapar" 3) Definimos las variables tanto Públicas como Privadas de la clase PROPERTY tag2 AS String PRIVATE htag2 AS String 'función de lectura PRIVATE FUNCTION tag2_Read() AS String RETURN htag2 END 'función de escritura PRIVATE SUB tag2_Write(Value AS String) htag2 = value END 4) Definirmos las subrutinas y funciones que podran ser públicas o privadas. PUBLIC SUB colorear() …............... END PRIVATE SUB Ponercolorear(fondoimpar AS Integer, letraimpar AS Integer, fondopar AS Integer, letrapar AS Integer) …... End |
Una vez añadido el código, tendremos que hacer de nuevo el ejecutable, con las mismas opciones que hicimos de supergridviews cuando definimos la propiedad tag2. No lo voy a explicar aquí ya que sino sera recursivo, estando ya explicado con todo detalle anteriormente.
Vamos a probar el componente ampliado, abrimos de nuevo proyecto “pruebacomponente”, y vamos a añadirle el siguiente código:
Un módulo al que llamaremos Titulos, con el siguiente código:
PUBLIC SUB ponertitulo()
WITH FMain.supergridviews1
.header = 3
.rows.count = 4
.columns.count = 3
.Columns[0].title = "Articulo"
.Columns[1].title = "Precio"
.Columns[2].title = "Id"
.Columns[0].width = 50
.Columns[1].width = 84
.Columns[2].width = 350
.font.name = "Sans"
.font.size = 7
.Background = 16777215
.Foreground = 0
END WITH
'los colores los he cogido con el programa definir_gridviews_tableviews, aunque se pueden coger 'desde la propiedad backGROUND (elegimos en el cuadro de color el color que queremos) y 'copiar el numero que nos sale en la propiedes que nos interesen)
FMain.supergridviews1.colorfondoimpar = 16162098
FMain.supergridviews1.colorletraimpar = 676630
FMain.supergridviews1.colorfondopar = 16134706
FMain.supergridviews1.colorletrapar = 2566525
fMain.supergridviews1.colorear()
END
PUBLIC SUB dibujo(tabla AS supergridviews)
DIM a AS Integer
DIM b AS Integer
FOR a = 0 TO tabla.rows.count - 1
IF Par(a) = FALSE THEN
FOR b = 0 TO tabla.columns.count - 1
tabla[a, b].text = "prueba"
NEXT
ELSE
FOR b = 0 TO tabla.columns.count - 1
tabla[a, b].text = "prueba"
NEXT
END IF
NEXT
tabla.Refresh
END
'averigua si un numero es par o impar
PUBLIC FUNCTION Par(a AS Integer) AS Boolean
IF Round(a / 2, 0) * 2 = a THEN
'el numero es par
RETURN 1
ELSE
RETURN 0
END IF
END
En el formulario Fmain:
PUBLIC SUB Form_Open()
titulos.ponertitulo
titulos.dibujo(supergridviews1)
END
Importante: Nos tenemos que ir a Proyecto/Propiedades/ Pestaña Opciones, y poner “Simbolos en módulos son publicos...” como “Sí” y “Los controles en formularios son públicos” como “Sí”
Si lo ejecutamos, tendremos el siguiente resultado:
No hay comentarios:
Publicar un comentario