Exchanged transfer back. Does not belong there.
This commit is contained in:
@@ -118,156 +118,4 @@ function Debug( xItem )
|
||||
return xItem
|
||||
|
||||
|
||||
/* $Doc$
|
||||
* $FuncName$ <oForm> TForm()
|
||||
* $Description$ Returns TForm object
|
||||
* $End$ */
|
||||
function TForm()
|
||||
|
||||
static oClass
|
||||
|
||||
if oClass == nil
|
||||
oClass = TClass():New( "TFORM" ) // starts a new class definition
|
||||
|
||||
oClass:AddData( "cName" ) // define this class objects datas
|
||||
oClass:AddData( "nTop" )
|
||||
oClass:AddData( "nLeft" )
|
||||
oClass:AddData( "nBottom" )
|
||||
oClass:AddData( "nRight" )
|
||||
|
||||
oClass:AddVirtual( "aExcept" ) // Export exceptions
|
||||
|
||||
oClass:AddMethod( "New", @New() ) // define this class objects methods
|
||||
oClass:AddMethod( "Show", @Show() )
|
||||
oClass:AddMethod( "Transfer", @Transfer() )
|
||||
|
||||
oClass:Create() // builds this class
|
||||
endif
|
||||
|
||||
return oClass:Instance() // builds an object of this class
|
||||
|
||||
|
||||
/* $Doc$
|
||||
* $FuncName$ <oForm> TForm:New()
|
||||
* $Description$ Constructor
|
||||
* $End$ */
|
||||
static function New()
|
||||
|
||||
local Self := QSelf()
|
||||
|
||||
::nTop = 10
|
||||
::nLeft = 10
|
||||
::nBottom = 20
|
||||
::nRight = 40
|
||||
|
||||
return Self
|
||||
|
||||
|
||||
/* $Doc$
|
||||
* $FuncName$ TForm:Show()
|
||||
* $Description$ Show a form
|
||||
* $End$ */
|
||||
static function Show()
|
||||
|
||||
local Self := QSelf()
|
||||
|
||||
QOut( "lets show a form from here :-)" )
|
||||
|
||||
return nil
|
||||
|
||||
|
||||
//
|
||||
// <xRet> TForm:Transfer( [<xArg,..>] )
|
||||
//
|
||||
// Generic object import and export function
|
||||
//
|
||||
// <xArg> is present.
|
||||
//
|
||||
// Maximum number of arguments passed is limited to 10 !
|
||||
//
|
||||
// An argument can be one of the following :
|
||||
//
|
||||
// { <cSymbol>, <xValue> } Set DATA <cSymbol> to <xValue>
|
||||
// { { <cSym1>, <xVal1> }, { <cSym2>, <xVal2> }, ... }
|
||||
// Set a whole list symbols to value
|
||||
// Normal way of set objects from external
|
||||
// sources, like memo files.
|
||||
// <oObject> Set self according to the DATA
|
||||
// contained in <oObject>
|
||||
// Can be used to transfer info from
|
||||
// one class to another
|
||||
//
|
||||
// If <xArg> is not present, the current object will be returned as an array
|
||||
// for description see aoSet / aoGet.
|
||||
//
|
||||
// The method aExcept() is called to determine the DATA which should not
|
||||
// be returned. Eg. hWnd ( do not copy this DATA from external source )
|
||||
//
|
||||
// Say we want to copy oSource into oTarget we say :
|
||||
//
|
||||
// oTarget:Transfer( oSource )
|
||||
//
|
||||
// If we do not want 'cName' duplicated we have to use aoGet :
|
||||
//
|
||||
// aNewExcept := aClone( oSource:aExcept() )
|
||||
// aAdd( aNewExcept, "cName" ) /* Add cName to exception list */
|
||||
// oTarget:Transfer( aoGet( oSource, aNewExcept ) )
|
||||
// /* Get DATA from oSource with new exceptions */
|
||||
// /* Transfer DATA to oTarget */
|
||||
//
|
||||
// To set two DATA of oTarget :
|
||||
//
|
||||
// oTarget:Transfer( { "nLeft", 10 }, { "nRight", 5 } )
|
||||
//
|
||||
// or :
|
||||
//
|
||||
// aCollect := {}
|
||||
// aAdd( aCollect, { "nLeft" , 10 } )
|
||||
// aAdd( aCollect, { "nRight", 5 } )
|
||||
// oTarget:Transfer( aCollect )
|
||||
//
|
||||
// Copy oSource to a memo field :
|
||||
//
|
||||
// DbObject->Memo := oSource:Transfer()
|
||||
//
|
||||
// (Re)create oTarget from the memo field :
|
||||
//
|
||||
// oTarget := TTarget():New()
|
||||
// oTarget:Transfer( DbObject->Memo )
|
||||
//
|
||||
static function Transfer( x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 /* etc */ )
|
||||
|
||||
local self := QSelf()
|
||||
local aParam := __aParam()
|
||||
local nLen := PCount()
|
||||
local xRet
|
||||
local xData
|
||||
local n
|
||||
|
||||
if nLen == 0
|
||||
xRet := aOGet( self, ::aExcept() )
|
||||
else
|
||||
for n := 1 to nLen
|
||||
|
||||
xData := aParam[ n ]
|
||||
if ValType( xData ) == "A"
|
||||
|
||||
if ValType( xData[1] ) == "A" // 2D array passed
|
||||
xRet := aOSet( self, xData )
|
||||
else // 1D array passed
|
||||
xRet := aOSet( self, {xData} )
|
||||
endif
|
||||
|
||||
elseif ValType( xData ) == "O" // Object passed
|
||||
xRet := ::Transfer( xData:Transfer() )
|
||||
elseif ValType( xData ) != "U"
|
||||
QOut( "TRANSFER: Incorrect argument(", n, ") ", xData )
|
||||
endif
|
||||
|
||||
next n
|
||||
endif
|
||||
|
||||
return xRet
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -95,4 +95,156 @@ function FuncSecond( nParam, cParam, uParam )
|
||||
return nil
|
||||
|
||||
|
||||
/* $Doc$
|
||||
* $FuncName$ <oForm> TForm()
|
||||
* $Description$ Returns TForm object
|
||||
* $End$ */
|
||||
function TForm()
|
||||
|
||||
static oClass
|
||||
|
||||
if oClass == nil
|
||||
oClass = TClass():New( "TFORM" ) // starts a new class definition
|
||||
|
||||
oClass:AddData( "cName" ) // define this class objects datas
|
||||
oClass:AddData( "nTop" )
|
||||
oClass:AddData( "nLeft" )
|
||||
oClass:AddData( "nBottom" )
|
||||
oClass:AddData( "nRight" )
|
||||
|
||||
oClass:AddVirtual( "aExcept" ) // Export exceptions
|
||||
|
||||
oClass:AddMethod( "New", @New() ) // define this class objects methods
|
||||
oClass:AddMethod( "Show", @Show() )
|
||||
oClass:AddMethod( "Transfer", @Transfer() )
|
||||
|
||||
oClass:Create() // builds this class
|
||||
endif
|
||||
|
||||
return oClass:Instance() // builds an object of this class
|
||||
|
||||
|
||||
/* $Doc$
|
||||
* $FuncName$ <oForm> TForm:New()
|
||||
* $Description$ Constructor
|
||||
* $End$ */
|
||||
static function New()
|
||||
|
||||
local Self := QSelf()
|
||||
|
||||
::nTop = 10
|
||||
::nLeft = 10
|
||||
::nBottom = 20
|
||||
::nRight = 40
|
||||
|
||||
return Self
|
||||
|
||||
|
||||
/* $Doc$
|
||||
* $FuncName$ TForm:Show()
|
||||
* $Description$ Show a form
|
||||
* $End$ */
|
||||
static function Show()
|
||||
|
||||
local Self := QSelf()
|
||||
|
||||
QOut( "lets show a form from here :-)" )
|
||||
|
||||
return nil
|
||||
|
||||
|
||||
//
|
||||
// <xRet> TForm:Transfer( [<xArg,..>] )
|
||||
//
|
||||
// Generic object import and export function
|
||||
//
|
||||
// <xArg> is present.
|
||||
//
|
||||
// Maximum number of arguments passed is limited to 10 !
|
||||
//
|
||||
// An argument can be one of the following :
|
||||
//
|
||||
// { <cSymbol>, <xValue> } Set DATA <cSymbol> to <xValue>
|
||||
// { { <cSym1>, <xVal1> }, { <cSym2>, <xVal2> }, ... }
|
||||
// Set a whole list symbols to value
|
||||
// Normal way of set objects from external
|
||||
// sources, like memo files.
|
||||
// <oObject> Set self according to the DATA
|
||||
// contained in <oObject>
|
||||
// Can be used to transfer info from
|
||||
// one class to another
|
||||
//
|
||||
// If <xArg> is not present, the current object will be returned as an array
|
||||
// for description see aoSet / aoGet.
|
||||
//
|
||||
// The method aExcept() is called to determine the DATA which should not
|
||||
// be returned. Eg. hWnd ( do not copy this DATA from external source )
|
||||
//
|
||||
// Say we want to copy oSource into oTarget we say :
|
||||
//
|
||||
// oTarget:Transfer( oSource )
|
||||
//
|
||||
// If we do not want 'cName' duplicated we have to use aoGet :
|
||||
//
|
||||
// aNewExcept := aClone( oSource:aExcept() )
|
||||
// aAdd( aNewExcept, "cName" ) /* Add cName to exception list */
|
||||
// oTarget:Transfer( aoGet( oSource, aNewExcept ) )
|
||||
// /* Get DATA from oSource with new exceptions */
|
||||
// /* Transfer DATA to oTarget */
|
||||
//
|
||||
// To set two DATA of oTarget :
|
||||
//
|
||||
// oTarget:Transfer( { "nLeft", 10 }, { "nRight", 5 } )
|
||||
//
|
||||
// or :
|
||||
//
|
||||
// aCollect := {}
|
||||
// aAdd( aCollect, { "nLeft" , 10 } )
|
||||
// aAdd( aCollect, { "nRight", 5 } )
|
||||
// oTarget:Transfer( aCollect )
|
||||
//
|
||||
// Copy oSource to a memo field :
|
||||
//
|
||||
// DbObject->Memo := oSource:Transfer()
|
||||
//
|
||||
// (Re)create oTarget from the memo field :
|
||||
//
|
||||
// oTarget := TTarget():New()
|
||||
// oTarget:Transfer( DbObject->Memo )
|
||||
//
|
||||
static function Transfer( x1,x2,x3,x4,x5,x6,x7,x8,x9,x10 /* etc */ )
|
||||
|
||||
local self := QSelf()
|
||||
local aParam := __aParam()
|
||||
local nLen := PCount()
|
||||
local xRet
|
||||
local xData
|
||||
local n
|
||||
|
||||
if nLen == 0
|
||||
xRet := aOGet( self, ::aExcept() )
|
||||
else
|
||||
for n := 1 to nLen
|
||||
|
||||
xData := aParam[ n ]
|
||||
if ValType( xData ) == "A"
|
||||
|
||||
if ValType( xData[1] ) == "A" // 2D array passed
|
||||
xRet := aOSet( self, xData )
|
||||
else // 1D array passed
|
||||
xRet := aOSet( self, {xData} )
|
||||
endif
|
||||
|
||||
elseif ValType( xData ) == "O" // Object passed
|
||||
xRet := ::Transfer( xData:Transfer() )
|
||||
elseif ValType( xData ) != "U"
|
||||
QOut( "TRANSFER: Incorrect argument(", n, ") ", xData )
|
||||
endif
|
||||
|
||||
next n
|
||||
endif
|
||||
|
||||
return xRet
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user