Estimados,
Alguien tendra un codigo que defina un Dialogo y lo ajuste dentro de una ventana, es decir, que esta sea su contenedora?
Gracias de antemano
DEFINE WINDOW oWnd1 MDICHILD TITLE "A/B/M de Grupos" OF oApp:oWnd NOZOOM ICON oApp:oIco FROM 05,05 TO 50,50
DEFINE BUTTONBAR oBar SIZE 60,60 OF oWnd1 2010
DEFINE BUTTON RESOURCE "ALTA" OF oBar TOOLTIP "Agregar Registro" ACTION (Formu( .t. ),oBrw:Refresh()) PROMPT "Alta" TOP
DEFINE BUTTON RESOURCE "MODI" OF oBar TOOLTIP "Modificar Registro" ACTION (Formu( .f. ),oBrw:Refresh()) PROMPT "Modifica" TOP
DEFINE BUTTON RESOURCE "BAJA" OF oBar TOOLTIP "Eliminar Registro" ACTION (Baja( ),oBrw:Refresh()) PROMPT "Baja" TOP
DEFINE BUTTON RESOURCE "SALE" OF oBar TOOLTIP "Cerrar Ventana" ACTION oWnd1:End() PROMPT "Cerrar" TOP
oWnd1:bGotFocus := { || oDlg:SetFocus}
oWnd1:bResized := { || Incrusta( oWnd1, oDlg, .t.) } // Esta es la funcion que llamo para que el dialogo se ajuste
DEFINE DIALOG oDlg RESOURCE "ABMS" OF oWnd1
REDEFINE XBROWSE oBrw DATASOURCE oQryBrw COLUMNS "Codigo","nombre" HEADERS "Código","Nombre" SIZES 60,345 ID 111 OF oDlg AUTOSORT ON DBLCLICK (Formu( .f.),oBrw:Refresh())
REDEFINE SAY oBrw:oSeek PROMPT "" ID 113 OF oDlg
// Activo el dialogo y al iniciar muevo a 0,0
ACTIVATE DIALOG oDlg CENTER NOWAIT ON INIT oDlg:Move(0,0) VALID(oWnd1:End())
ACTIVATE WINDOW oWnd1 ON INIT Incrusta( oWnd1, oDlg, .T.) VALID(cerrar())
RETURN
FUNCTION Incrusta( oWnd, oDlg, lCentra)
STATIC lActivo := .F.
LOCAL aRect, nPosY, nPosX, nPosXX, oIco
IF IsIconic(oWnd:hWnd)
RETURN .T.
ENDIF
IF !(lActivo)
lActivo = .T.
// Muevo dialogo a 0,0 para que quede bien incrustado...
oDlg:Move(0,0)
// Primero Seteo Como si Windows Fuera Estandar...
oWnd:SetSize(oDlg:nWidth+8, oDlg:nHeight+27)
// Calculo diferencia !
aRect := GetClientRect(oWnd:hWnd)
nPosY := ABS(ABS(aRect[3]-aRect[1])-ABS(oWnd:nTop-oWnd:nBottom))
nPosX := ABS(ABS(aRect[4]-aRect[2])-ABS(oWnd:nRight-oWnd:nLeft))
nPosXX := INT(ABS(ABS(oWnd:nRight-oWnd:nLeft) - ABS(oApp:oWnd:nRight-oApp:oWnd:nLeft)) / 2)
// Ahora la pongo JUSTA, JUSTA...
oWnd:SetSize(oDlg:nWidth+nPosX,oDlg:nHeight+nPosY)
IF lCentra
oWnd:Move(oApp:oWnd:nTop+5,nPosXX)
ENDIF
lActivo := .F.
oWnd:SetIcon(oIco)
oWnd:Refresh()
oApp:oWnd:oWndClient:Refresh()
ENDIF
RETURN .T.
ABMS DIALOG DISCARDABLE 15, 19, 551, 309
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
{
CONTROL "", 111, "TXBROWSE", WS_TABSTOP|0x00b000a1, 4, 44, 540, 240
CONTROL "Buscar====>>>:", -1, "Static", SS_RIGHT|WS_GROUP, 8, 292, 56, 8
CONTROL "", 113, "Static", WS_GROUP, 68, 292, 476, 8
}
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: GUSPRE and 9 guests