Power Builder - resaltar Fila de DW

 
Vista:

resaltar Fila de DW

Publicado por David M. (71 intervenciones) el 26/11/2003 21:59:41
Hola a todos, el listview puede resaltar toda la fila, diganme por favor como hago para lograr el mismo efecto en un DW de tipo Grid, y si es posible o no.

Muhas gracias amigo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:resaltar Fila de DW

Publicado por Oscar (1178 intervenciones) el 26/11/2003 22:53:35
Si te refieres por ejemplo a cambiar el BackGround (o TextColor) de la fila seleccionada, los pasos son:
1. Abres tu objeto DW, y seleccionas todos las columnas (mantienes presionado CTRL y das clic en las columnas).
2. En las propiedades te vas a la ficha Font, luego en Background eliges Transparent, luego pulsas en su botón rojo expresión (expression). Y pegas lo siguiente:

if (getrow() = currentrow(), RGB(255,255,230),RGB(255,255,255))

3. Pulsas OK . Eso es todo.

Nota: Cuando esté seleccionada la fila, muestra un color amarillo suave; caso contrario, blanco.

Otro método, consiste en colocar un mano que señale la fila seleccionada; para ésto basta colocar en el evento RowFocusChanged del Control Dw_1.

This.SetRowFocusIndicator (hand!)

Lo malo, de ésto es que la mano tapa el valor del primer campo (cuando el DW es tipo Grid). Se logra un mejor resultado (idéntico al tipo Grid), cuando eliges un DW tipo Tabular; ya que éste permite mover las columnas un poco más a la izquierda para dejar un espacio, donde aparecerá la mano.

Se ve mejor si usas ambos métodos. O no sé cómo quieres resaltar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:resaltar Fila de DW

Publicado por Carlos (9 intervenciones) el 29/11/2003 21:22:53
PRIMERAMENTE DEBES DESACTIVAR LA CASILLA Mouse Selection de la datawindow

EN EL EVENTO CLICKED DEBES PONER EL SIGUIENTE CODIGO

IF row > 0 THEN
this.SelectRow(0, FALSE)
this.SelectRow(row, TRUE)
END IF

EN EL ROWFOCUSCHANGED coloca esto:

INTEGER li_row
li_row = this.GetRow()
IF li_row > 0 THEN
SelectRow(this, 0, FALSE)
SelectRow(this, li_row, TRUE)
END IF

esto es todo lo que tienes que hacer y LISTO.
------------------------------------------------------------------------------------
Espero te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar