Saludos
Cordiales
Necesito ubicar una caja de dialogo justo debajo de la casilla (Linea, Columna) focalizada en Xbrowse
Colocar un Dialogo debajo de una casilla en Xbrowse
- Antonio Linares
- Site Admin
- Posts: 42559
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 80 times
- Contact:
Re: Colocar un Dialogo debajo de una casilla en Xbrowse
Juan,
En el Método ShowBtnList( nKey ) CLASS TXBrwColumn (en xbrowse.prg) se calculan las coordenadas de una determinada celda:
Ahora tendrias que pasar esas coordenadas a valores de la pantalla completa:
local aPoint := { nRow, nCol }
aPoint = ClientToScreen( oBrowse:hWnd, aPoint )
Y desde la claúsula ON INIT de tu diálogo, posicionarlo en esas coordenadas:
En el Método ShowBtnList( nKey ) CLASS TXBrwColumn (en xbrowse.prg) se calculan las coordenadas de una determinada celda:
Code: Select all | Expand
nRow := ( ::oBrw:nRowSel * ::oBrw:nRowHeight ) + ::oBrw:HeaderHeight() - 1
nCol := ::nDisplayCol - 2
Ahora tendrias que pasar esas coordenadas a valores de la pantalla completa:
local aPoint := { nRow, nCol }
aPoint = ClientToScreen( oBrowse:hWnd, aPoint )
Y desde la claúsula ON INIT de tu diálogo, posicionarlo en esas coordenadas:
Code: Select all | Expand
ACTIVATE DIALOG oDlg ;
ON INIT oDlg:SetPos( aPoint[ 1 ], aPoint[ 2 ] )
- jnavas
- Posts: 482
- Joined: Wed Nov 16, 2005 12:03 pm
- Location: Caracas - Venezuela
- Been thanked: 2 times
- Contact:
Re: Colocar un Dialogo debajo de una casilla en Xbrowse
Antonio
Gracias, tenia este codigo copiado de la clase txbrwcol
LOCAL oDlg
LOCAL oCol := oBrw:aCols[oBrw:nColSel]
LOCAL nRow := ( ( oBrw:nRowSel - 1 ) * oBrw:nRowHeight ) + oBrw:HeaderHeight() + 2
LOCAL nCol := oCol:nDisplayCol + 3
LOCAL nWidth := oCol:nWidth - 4
LOCAL nHeight := oCol:oBrw:nRowHeight - 4
DEFINE DIALOG oDlg OF oBrw:oWnd
ACTIVATE DIALOG oDlg ON INIT (oDlg:Move(nRow, nCol, nWidth+200, nHeight+100, .t. ))
Gracias, tenia este codigo copiado de la clase txbrwcol
LOCAL oDlg
LOCAL oCol := oBrw:aCols[oBrw:nColSel]
LOCAL nRow := ( ( oBrw:nRowSel - 1 ) * oBrw:nRowHeight ) + oBrw:HeaderHeight() + 2
LOCAL nCol := oCol:nDisplayCol + 3
LOCAL nWidth := oCol:nWidth - 4
LOCAL nHeight := oCol:oBrw:nRowHeight - 4
DEFINE DIALOG oDlg OF oBrw:oWnd
ACTIVATE DIALOG oDlg ON INIT (oDlg:Move(nRow, nCol, nWidth+200, nHeight+100, .t. ))