James
Here is your test .. scaled down .. note the calculation for the folder, dialog, xbrowse and close button. Notice when you pull the lower right corner, the folder, dialog and xbrowse expand properly, but the button loses its caption and does not move... I need to be able to rezise the buttons and I can not make that happen.
Note that all the resize calculations are done in _ResizeControls().
Hope this helps.
Rick Lipkin
AdvtBrow.rc
ADVTBROW DIALOG 12, 11, 365, 131
STYLE WS_CHILD
FONT 6, "MS Sans Serif"
{
CONTROL "", 272, "TXBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 35, 4, 327, 123
CONTROL "Add", 213, "TBtnBmp", 32 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 10, 27, 19
CONTROL "Edit", 214, "TBtnBmp", 32 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 31, 27, 19
}
Billing.rc
BILLING DIALOG 12, 11, 401, 179
STYLE WS_CHILD
FONT 6, "MS Sans Serif"
{
}
Custview.rc
CUSTVIEW DIALOG 3, 13, 612, 343
STYLE WS_CHILD
FONT 6, "MS Sans Serif"
{
EDITTEXT 130, 56, 12, 160, 12, ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP
EDITTEXT 131, 56, 25, 98, 12, ES_CENTER | ES_AUTOHSCROLL | NOT WS_TABSTOP | WS_BORDER
CONTROL "&Close", 182, "TBtnBmp", 32 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 532, 315, 70, 17
CONTROL "Customer Info", 172, "TXBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP, 230, 13, 373, 110
CONTROL "&Add New", 181, "TBtnBmp", 32 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 459, 315, 70, 17
CONTROL "&Save New", 180, "TBtnBmp", 32 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 386, 315, 70, 17
CONTROL "Company", 110, "STATIC", SS_NOPREFIX | WS_GROUP, 7, 12, 46, 12
GROUPBOX " Search", 200, 3, 1, 221, 41, BS_GROUPBOX
LTEXT "Customer Id", 111, 7, 25, 46, 12, SS_NOPREFIX | WS_GROUP
CONTROL "Save Edit", 183, "TBtnBmp", 32 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 313, 315, 70, 17
CONTROL "", 173, "TFolderex", 0 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 231, 128, 371, 155
}
Main Code
// main.prg
#include "Fivewin.ch"
#Include "xBrowse.Ch"
Function Main()
Local oWind
DEFINE WINDOW oWind MDI
ACTIVATE WINDOW oWind ON INIT ( _CustView("A",oWind) ) MAxiMizED
Return nil
//-------------------------------
Static FUNC _CustView( cMODE,oWind )
LOCAL SAYING, oWndChild, oGrps,oSay1,oSay2
LOCAL cTITLE, oBtn1,oBTN2,oBtn3,oBtn4
Local oBtn5,oBtn6
Local lOk
Local oFontB
Local cName,cCid,oName,oCid
Local oCol
Local oFld,nFolder,oLbxA,oLbx
lOk := .F. // trap valid
oFontB := TFont():New("Ms Sans Serif",,-6,.F.,.T. ,,,,.F. )
cMode := "A"
// search vars
cName := space(50)
cCid := space(15)
LightGreyGrad()
cTITLE := "Clients-Billing"
DO CASE
CASE cMODE = "E"
cTITLE := "Clients-Billing EDIT "
CASE cMODE = "A"
cTITLE := "Clients-Billing ADD "
CASE cMODE = "V"
cTITLE := "Clients-Billing VIEW "
ENDCASE
DEFINE WINDOW oWndChild ;
MDICHILD ;
FROM 0,1 to 37,117 ;
NOMINIMIZE ;
NOZOOM ;
OF oWind ;
TITLE cTITLE
oWndChild:bGotFocus = { || oGrps:SetFocus() }
DEFINE DIALOG oGRPS RESOURCE "CUSTVIEW" ;
of oWndChild
REDEFINE FOLDEREX oFld ID 173 of oGrps ;
PROMPT "Advertising Information", "Billing-Invoicing Information";
DIALOGS "ADVTBROW", "BILLING" ;
ON CHANGE( nFolder := nOption )
// folder 1
REDEFINE xBROWSE oLbxA ;
COLSIZES 50,120,80,80,150 ;
HEADERS "PubId", ;
"Publication", ;
"StartDate", ;
"EndDate", ;
"Acct Executive" ;
ID 272 of oFld:aDialogs[1] ;
AUTOCOLS LINES CELL
oLbxA:lRecordSelector := .f.
oLbxA:lHScroll := .f. // turn off horiz scroll bar
REDEFINE BTNBMP oBTN5 ID 213 of oFld:aDialogs[1] ; // add
PROMPT "Add" LEFT 2007;
ACTION ( nil )
REDEFINE BTNBMP oBTN6 ID 214 of oFld:aDialogs[1] ; // edit
PROMPT "Edit" LEFT 2007;
ACTION ( nil )
// end folder1
* REDEFINE GROUP oGrp1 ID 200 OF oGrps
* oGrp1:SetFont( oFontB )
* oGrp1:nClrText := nRgb( 7,7,224 ) // blue
REDEFINE SAY oSay1 PROMPT "Company" ID 110 OF oGrps UPDATE
oSay1:SetFont( oFontB )
REDEFINE SAY oSay2 PROMPT "Customer Id" ID 111 OF oGrps UPDATE
oSay2:SetFont( oFontB )
// search
REDEFINE GET oName var cName ID 130 of oGrps UPDATE
REDEFINE GET oCid var cCid ID 131 of oGrps UPDATE
REDEFINE xBROWSE oLBX ;
COLSIZES 75,150,85,150 ;
HEADERS "Cust Id", ;
"Customer Name", ;
"Phone", ;
"Contact Person" ;
ID 172 of oGrps ;
AUTOCOLS LINES CELL
oLbx:lRecordSelector := .f.
REDEFINE BTNBMP oBTN1 ID 180 of oGRPS ; // save new
RESOURCE "OK" ;
PROMPT " Save New " LEFT 2007;
ACTION ( nil )
REDEFINE BTNBMP oBTN2 ID 181 of oGRPS ; // add new
RESOURCE "PLUS16" ;
PROMPT " Add New " LEFT 2007;
ACTION ( lOK := .F., oWndChild:END() )
REDEFINE BTNBMP oBTN3 ID 182 of oGRPS ; // close
RESOURCE "CANCEL" ;
PROMPT " Close " LEFT 2007;
ACTION ( lOK := .F., oWndChild:END() )
REDEFINE BTNBMP oBTN4 ID 183 of oGRPS ; // save edit
RESOURCE "OK" ;
PROMPT " Save Edit " LEFT 2007;
ACTION ( nil )
ACTIVATE DIALOG oGRPS NOWAIT ;
ON INIT (oGrps:Move( 0,0 ), oName:SetFocus(), .F. ) ;
VALID(!GETKEYSTATE( 27 ))
ACTIVATE WINDOW oWndChild ;
ON INIT ( ;
oWndChild:bResized := {|| _ReSizeUm( oGrps,oWndChild,oLbx,oLbxA,oFld) }, ;
oGrps:ReFresh());
VALID ( IIF( !lOk, ExitPgm( .T.,@lOk,oFontB,oWndChild ) , .F. ))
RETURN( nil )
//------------------------------
Static Func _ReSizeUm( oGrps,oWndChild,oLbx,oLbxA,oFld )
oGrps:SetSize( oWndChild:nWidth, oWndChild:nHeight, .t. ) // frame and dialog link
// dialog controls
oGrps:bResized = { | nSizeType, nWidth, nHeight | _ResizeControls( nSizeType, nWidth, nHeight, oGrps, oFld ) }
Return(nil)
//-------------------------
Static Func _ResizeControls( nSizeType, nWidth, nHeight, oGrps,oFld )
if nSizeType = 0 //SIZE_MAXIMIZED
* xbrowse( oGrps:aControls )
* xbrowse( oFld:aDialogs[1]:aControls )
* xbrowse( oFld:aDialogs[1]:aControls[6] )
* xbrowse( oFld:aDialogs )
// 340
oGrps:aControls[1 ]:SetSize( nWidth - 372, nHeight - 290 ) //folder
oFld:aDialogs[1]:SetSize( nWidth - 372, nHeight - 290 ) // dialog1
oFld:aDialogs[1]:aControls[1]:SetSize(nWidth - 435, nHeight - 340 ) // xbrowse folder 1
* oFld:aDialogs[1]:aControls[6]:SetSize( nWidth - 600, nHeight - 370 ) // publications
* oGrps:aControls[7]:SetSize( nWidth - 372, nHeight - 340 ) //save new
* oGrps:aControls[8]:SetSize( nWidth - 372, nHeight - 340 ) //add new
oGrps:aControls[9]:SetSize( nWidth - 372, nHeight - 340 ) //close
* oGrps:aControls[10]:SetSize( nWidth - 372, nHeight - 340 ) //save edit
endif
Return(nil)
//------------------
Static Func LightGreyGrad()
SetDlgGradient( { { .50, nRGB( 216, 216, 216 ), nRGB( 255, 255, 255 ) } } )
Return(nil)
//----------------------
Static FUNC _CleanUp()
RETURN(.T.)
//-----------------------
Static FUNCTION ExitPgm( lClean,lOk,oFontB,oWndChild )
Local Saying
IF lCLEAN = .T.
lOk := .T.
RELEASE oFontB
ENDIF
RETURN( lOk )