In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Avanzando con TBrowseMod
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Desde el IDE?
Gracias
Gracias
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
El anterior Browse tenía la posibilidad de establecer un font por cada columna. No obstante, era muy poco útil, porque no suele ser habitual que todos los elementos de una columna se pinten con un font distinto. Lo normal es que se cambie el font cuando se produce alguna condición en los datos que se muestran. Por dicho motivo y en aras a no consumir recursos innecesariamente, decidí no incluir la propiedad oFont en las columnas.
La forma más sencilla de cambiar el font de una columna es utilizando el evento OnDrawCell() que recibe como penúltimo parametro el hDC con el cual vamos a poder cambiar el font que está seleccionado. Pasos:
1) Cree un componente de forma manual en el formulario:
Código: Seleccionar todo
CLASS TForm1 FROM TForm
component oFontBold AS TFont
.....
Código: Seleccionar todo
METHOD FormInitialize( oSender ) CLASS TForm1
::oFontBold := ::oFont:Clone()
::oFontBold:lBold := .T.
Código: Seleccionar todo
SelectObject( hDC, ::oFont:Handle ) // selecciona font por defecto
with object oCol
if :nDataCol == 5 .AND. xValue > 0
cValue := :aEditListText[ xValue ]
if cValue != "uno"
SelectObject( hDC, ::oFontBold:Handle ) // cambio el font en casos especificos
ENDIF
endif
end with
Código: Seleccionar todo
METHOD FormDestroy( oSender ) CLASS TForm1
::oFontBold:End()
RETURN Nil
Saludos
Re: Avanzando con TBrowseMod
Ignacio, gracias por responder..
El propósito de cambiar el font, en mi aplicación uso regularmente fuentes grandes 12 a 18px, pero el titulo del browse con fuentes grandes se pierden por que no caben, ese el motivo (y estéticamente también pierde vista).
Quizás si sea posible si así usted lo considera viable poder cambiar la fuente del titulo del browse.
Saludos!
El propósito de cambiar el font, en mi aplicación uso regularmente fuentes grandes 12 a 18px, pero el titulo del browse con fuentes grandes se pierden por que no caben, ese el motivo (y estéticamente también pierde vista).
Quizás si sea posible si así usted lo considera viable poder cambiar la fuente del titulo del browse.
Saludos!
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
No le entiendo. En el browse no existe ningún título como tal. No sé a que se refiere. Lo sientogabo1 escribió: ↑Mié Feb 10, 2021 4:20 pm Ignacio, gracias por responder..
El propósito de cambiar el font, en mi aplicación uso regularmente fuentes grandes 12 a 18px, pero el titulo del browse con fuentes grandes se pierden por que no caben, ese el motivo (y estéticamente también pierde vista).
Quizás si sea posible si así usted lo considera viable poder cambiar la fuente del titulo del browse.
Saludos!
Saludos
Re: Avanzando con TBrowseMod
Ignacio,
Tiene usted razón no hay ningún titulo en el browsemod, pero me refiero a los Headers de cada columna
Saludos!
.
Tiene usted razón no hay ningún titulo en el browsemod, pero me refiero a los Headers de cada columna
Saludos!
.
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Exactamente igual, pero con otro evento:
Código: Seleccionar todo
METHOD BrowseMod1DrawHeader( oSender, oItem, cText, nImage, nClrText, nClrPane, hDC, aRect ) CLASS TForm1
REDECLARE oItem as THeaderItemMod
SelectObject( hDC, ::oFont:Handle )
with object oItem
if :cHeader == "Street"
SelectObject( hDC, ::oFontBold:Handle )
endif
end with
RETURN Nil
Re: Avanzando con TBrowseMod
Buenas tardes, lo he probado y va bien, de esta forma podemos personalizar el font en el header.ignacio escribió: ↑Jue Feb 11, 2021 4:36 pmExactamente igual, pero con otro evento:
SaludosCódigo: Seleccionar todo
METHOD BrowseMod1DrawHeader( oSender, oItem, cText, nImage, nClrText, nClrPane, hDC, aRect ) CLASS TForm1 REDECLARE oItem as THeaderItemMod SelectObject( hDC, ::oFont:Handle ) with object oItem if :cHeader == "Street" SelectObject( hDC, ::oFontBold:Handle ) endif end with RETURN Nil
Por otro lado, tengo un combo en el browse, como hago para que las opciones del combo me siga usando la fuente que definí en el browse?
Gracias
Marcelo Roggeri
Argentina
Argentina
Re: Avanzando con TBrowseMod
me sale este error al intentar ajustar las columnas
With Object ::oDBBrowse1
For nCol := 1 To Len(:aCols)
:AdjustColWidth(:aCols[nCol])
Next
End With
Versión Xailer: Xailer 7.0.0
Compilador: Harbour 3.2.0dev (r1912031042)
Compilador C/C++: MinGW GNU C 7.3 (32-bit)
Plataforma: Windows 10 10.0
----------------------- Información detallada del error -----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Message not found
Operación: TDbBrwColMod:OGRIDCOL
Argumentos: [ 1] = Tipo: O Valor:
Fichero:
Código error SO: 0
Saludos
With Object ::oDBBrowse1
For nCol := 1 To Len(:aCols)
:AdjustColWidth(:aCols[nCol])
Next
End With
Versión Xailer: Xailer 7.0.0
Compilador: Harbour 3.2.0dev (r1912031042)
Compilador C/C++: MinGW GNU C 7.3 (32-bit)
Plataforma: Windows 10 10.0
----------------------- Información detallada del error -----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Message not found
Operación: TDbBrwColMod:OGRIDCOL
Argumentos: [ 1] = Tipo: O Valor:
Fichero:
Código error SO: 0
Saludos
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Forma correcta:
No obstante, se incluirá código para que funcione sin necesidad de indicar el THeaderItemMod
Saludos
Código: Seleccionar todo
local oCol
WITH OBJECT ::oBrowseMod1
FOR EACH oCol IN :aDisplayCols
:AdjustColWidth( oCol:oHeaderCol )
NEXT
END WITH
Saludos
Re: Avanzando con TBrowseMod
Gracias.
Tengo otro detalle, tengo un proceso de lectura de archivos de text con SQLText, y en el browse los campos que me traen Nil, los deja como texto en blanco, pero con el BrowseMod me deja los Nil. Tengo que correr otro proceso para eliminarlos? o hay alguna propiedad para validarlo?
Saludos.
Tengo otro detalle, tengo un proceso de lectura de archivos de text con SQLText, y en el browse los campos que me traen Nil, los deja como texto en blanco, pero con el BrowseMod me deja los Nil. Tengo que correr otro proceso para eliminarlos? o hay alguna propiedad para validarlo?
Saludos.
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Ya está corregido.
Un saludo
Un saludo