Para "pegar" un dialogo al MAIN WINDOW al iniciar mi programa, uso la clausula ON INIT, asi como oDlg:Move(x,y) para posicionar dicho dialogo dentro del WINDOW; al dialogo le quito el CAPTION asi este no se puede mover.
El problema lo tengo que el MAIN WINDOW si se puede mover y maximizar. Lo que quisiera es que cuando se mueva el MAIN WINDOW tambien se mueva con el el dialogo y que el MAIN WINDOW no se pueda MAXIMIZAR. Alguna sugerencia?
George
"Pegar" DIALOGO a MAIN WINDOW
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio
Asi es que lo tengo desde el principio, debe ser otra cosa que me falta.
Abajo esta el codigo simplificado a ver si tu puedes ver algo que yo estoy pasando por alto
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FUNCTION Main()
BWCCRegister(GetResources())
PUBLIC oWnd
DEFINE FONT oFont NAME "MS SANS SERIF" SIZE 0,-8 //BOLD
DEFINE FONT oFont01 NAME "VERDANA" SIZE 0,-11 BOLD
Inicio()
cAppliDir := SFN2LFN(cAppliDir)
DEFINE BRUSH oBrush COLOR CLR_WHITE
DEFINE WINDOW oWnd MDI;
FROM 4,10 TO 45.70, 140;
TITLE ("Customer's Verification Software");
BRUSH oBrush
oWnd:SetFont(oFont)
FrameBar()
oWnd:SetMenu(MainMenu())
ACTIVATE WINDOW oWnd ON INIT ( Seguridad(), ActivateDialog() )
RETURN (.T.)
FUNCTION ActivateDialog()
DEFINE DIALOG oDlg RESOURCE "DIALOG_4" of oWnd ;
.......
........
.........
ACTIVATE DIALOG oDlg NOWAIT ON INIT oDlg:Move(155, 85)
RETURN .T.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Asi como esta me permite trabajar bien. Solo que al mover el MAIN WINDOWS el dialogo no se mueve con el. Si quito la clausula NOWAIT entonces no puedo acceder al menu en el MAIN WIDOWS
Gracias por todo
George
Asi es que lo tengo desde el principio, debe ser otra cosa que me falta.
Abajo esta el codigo simplificado a ver si tu puedes ver algo que yo estoy pasando por alto
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FUNCTION Main()
BWCCRegister(GetResources())
PUBLIC oWnd
DEFINE FONT oFont NAME "MS SANS SERIF" SIZE 0,-8 //BOLD
DEFINE FONT oFont01 NAME "VERDANA" SIZE 0,-11 BOLD
Inicio()
cAppliDir := SFN2LFN(cAppliDir)
DEFINE BRUSH oBrush COLOR CLR_WHITE
DEFINE WINDOW oWnd MDI;
FROM 4,10 TO 45.70, 140;
TITLE ("Customer's Verification Software");
BRUSH oBrush
oWnd:SetFont(oFont)
FrameBar()
oWnd:SetMenu(MainMenu())
ACTIVATE WINDOW oWnd ON INIT ( Seguridad(), ActivateDialog() )
RETURN (.T.)
FUNCTION ActivateDialog()
DEFINE DIALOG oDlg RESOURCE "DIALOG_4" of oWnd ;
.......
........
.........
ACTIVATE DIALOG oDlg NOWAIT ON INIT oDlg:Move(155, 85)
RETURN .T.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Asi como esta me permite trabajar bien. Solo que al mover el MAIN WINDOWS el dialogo no se mueve con el. Si quito la clausula NOWAIT entonces no puedo acceder al menu en el MAIN WIDOWS
Gracias por todo
George
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio,
El DIALOG_4 no lo estoy definiendo como CHILD. El problema es que si lo defino como CHILD entonces, aunque se mueve bien con el WINDOW MAIN, el DIALOG_4 no se dibuja completo y algunos controle ni siquieran funcionan, los say no se dibujan, etc. Seguire investigando, pues es la primera vez que intento esto de iniciar mi programa en modo MDI con un DIALOG abierto. Quizas me puedas hacer alguna sugerencia.
Saludos
George
El DIALOG_4 no lo estoy definiendo como CHILD. El problema es que si lo defino como CHILD entonces, aunque se mueve bien con el WINDOW MAIN, el DIALOG_4 no se dibuja completo y algunos controle ni siquieran funcionan, los say no se dibujan, etc. Seguire investigando, pues es la primera vez que intento esto de iniciar mi programa en modo MDI con un DIALOG abierto. Quizas me puedas hacer alguna sugerencia.
Saludos
George
Esto quiza te pueda servir
Mode de uso:
Para los controles los declaras normal
Code: Select all
/*
╔════════════════════════════════════════════════════════════════════════╗
║ Program......: DlgChild.prg ║
║ Date.........: 07-01-2004 ║
║ Author.......: Renzo A. Balboa Flores ║
║ Compiler.....: Clipper Ver 5.3 ║
║ Description..: Clase TDlgChild hereda de TMDIChild ║
║ Child con dialogo inscrustado ║
╠════════════════════════════════════════════════════════════════════════╣
║ Modificación : Mon - 14/Feb/2005 --- 01:27 AM ║
╚════════════════════════════════════════════════════════════════════════╝
*/
#Include 'Fivewin.ch'
CLASS TDlgChild FROM TMDIChild
DATA oDlg
DATA lModal AS LOGICAL INIT .T.
METHOD New() CONSTRUCTOR
METHOD Activate()
METHOD DefControl( oCtrl ) INLINE ::oDlg:DefControl( oCtrl )
METHOD End()
METHOD Update() INLINE ::oDlg:Update()
METHOD ClassName() INLINE 'TDIALOG' //para tsbrowse
ENDCLASS
//----------------------------------------------------------------------------//
METHOD New( cTitle, cResource, nTop, nLeft, nBottom, nRight, lPixel ) CLASS TDlgChild
DEFAULT lPixel := .F.
::bEnd := { || Nil }
Super:New( ::nTop, ::nLeft, ::nBottom, ::nRight, cTitle, Nil, Nil, Nil, ;
oApp:oWnd:oIcon, .F., Nil, Nil, Nil, Nil, .T., .F., Nil, Nil, .T., ;
.T., .T., .F. ) //No Maximize
If Empty( cResource )
If lPixel
DEFINE DIALOG ::oDlg FROM nTop, nLeft TO nBottom, nRight PIXEL OF Self STYLE WS_CHILD
::hWnd := 0
Else
DEFINE DIALOG ::oDlg FROM nTop, nLeft TO nBottom, nRight OF Self STYLE WS_CHILD
::hWnd := 0
EndIf
Else
DEFINE DIALOG ::oDlg RESOURCE cResource OF Self
EndIf
Return Self
//----------------------------------------------------------------------------//
METHOD Activate( bInit ) CLASS TDlgChild
Local nW := If( IsWinNT(), 8, 8 )
Local nH := If( IsWinNT(),33, 27 )
Local oChild := Self
ACTIVATE DIALOG ::oDlg NOWAIT VALID ( oChild:End(), .T. )
::oDlg:Move( 0,0 )
::nWidth := ::oDlg:nWidth + nW
::nHeight := ::oDlg:nHeight + nH
Super:Activate(,,,,,,, bInit, )
/*( cShow, bLClicked, bRClicked, bMoved, bResized, bPainted,;
bKeyDown, bInit, bUp, bDown, bPgUp, bPgDn, bLeft, bRight,;
bPgLeft, bPgRight, bValid ) */
Return Self
//----------------------------------------------------------------------------//
Code: Select all
oDlg := TDlgChild( "Tu Titulo", "DLGRECURSO" )
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: