
#Region MakeCopy - Make a copy of different Grid Structures
'------------------------------------------------------------------------------------------------------------------
'	MakeCopy - makes a copy of Grid Types
'------------------------------------------------------------------------------------------------------------------
Public  Sub MakeCopy(CopyThis As Object) As Object
			
#Region Event Copy
			If  CopyThis Is TcGridEvent Then
				Dim CopyEvent	As TcGridEvent = CopyThis
				Dim Event		As TcGridEvent
				
				Event.Initialize
				Event.IsValid	= CopyEvent.IsValid
				Event.CallWhat	= CopyEvent.CallWhat
				Event.CallWho	= CopyEvent.CallWho
				
				Return Event	
			End If
#end Region

#Region Padding Copy
			If  CopyThis Is TcGridPadding Then
				Dim CopyPadding	As TcGridPadding = CopyThis
				Dim Padding		As TcGridPadding
				
				Padding.Initialize
				Padding.IsValid		= CopyPadding.IsValid
				Padding.Pad_Left	= CopyPadding.Pad_Left
				Padding.Pad_Top		= CopyPadding.Pad_Top
				Padding.Pad_Right	= CopyPadding.Pad_Right
				Padding.Pad_Bottom	= CopyPadding.Pad_Bottom
				
				Return Padding	
			End If
#end Region


#Region Colors Copy			
			If  CopyThis Is TcGridColors Then
				Dim CopyColors 	As TcGridColors = CopyThis
				Dim GridColors	As TcGridColors
				
				GridColors.Initialize
				GridColors.BGColor		= CopyColors.BGColor
				GridColors.FGColor		= CopyColors.FGColor
				GridColors.SpacingColor	= CopyColors.SpacingColor
				
				Return GridColors
			End If
#end Region

#Region Formating Copy			
			If  CopyThis Is TcGridFormat Then
				Dim CopyFormat As TcGridFormat = CopyThis				
				Dim Format 	 As TcGridFormat
				
				Format.Initialize
				Format.FontSize		= CopyFormat.FontSize
				Format.FontTypeface	= CopyFormat.FontTypeface
				Format.FormatGravity	= CopyFormat.FormatGravity
				
				Return Format
			End If
#end Region

#Region Function Copy / Function Range / Function Call			
			If  CopyThis Is TcGridFunction Then
				Dim CopyGridFunction 	As TcGridFunction = CopyThis
				Dim GridFunction		As TcGridFunction
				
				GridFunction.Initialize
				GridFunction.Function		= CopyGridFunction.Function
				GridFunction.Name			= CopyGridFunction.Name
								
				GridFunction.Range.Initialize
				
				For i = 0 To CopyGridFunction.Range.Size-1
					GridFunction.Range.Add(MakeCopy(CopyGridFunction.Range.Get(i)))
				Next
				
				GridFunction.UserFunction	= MakeCopy(CopyGridFunction.UserFunction)
				
				Return GridFunction
			End If
			
			If  CopyThis Is TcGridFunctionRange  Then
				Dim CopyFunctionRange 	As TcGridFunctionRange = CopyThis
				Dim FunctionRange		As TcGridFunctionRange
				
				FunctionRange.Initialize
				FunctionRange.StartRow		= CopyFunctionRange.StartRow
				FunctionRange.StartCol		= CopyFunctionRange.StartCol				
				
				FunctionRange.EndRow		= CopyFunctionRange.EndRow
				FunctionRange.EndCol		= CopyFunctionRange.EndCol
				
				Return FunctionRange
			End If
			
			If  CopyThis Is TcGridFunctionCall Then
				Dim CopyFunctionCall 	As TcGridFunctionCall = CopyThis
				Dim FunctionCall		As TcGridFunctionCall
				
				FunctionCall.Initialize
				FunctionCall.Call		= CopyFunctionCall.Call
				FunctionCall.Routine	= CopyFunctionCall.Routine
				
				Return FunctionCall
			End If
#end Region

#Region Routine Copy			
			If  CopyThis Is TcGridRoutine Then
				Dim CopyRoutine		As TcGridRoutine = CopyThis
				Dim Routine			As TcGridRoutine 
				
				Routine.Initialize
				Routine.RowCol.Initialize
				Routine.RowCol.Header	= CopyRoutine.RowCol.Header
				Routine.RowCol.RowID	= CopyRoutine.RowCol.RowID
				Routine.RowCol.ColID	= CopyRoutine.RowCol.ColID
				Routine.Name			= CopyRoutine.Name
				
				Return Routine
			End If
#end Region

#Region RowCol Copy
			If  CopyThis Is TcGridRowCol Then
				Dim CopyRowCol 	As TcGridRowCol = CopyThis
				Dim RowCol		As TcGridRowCol
				
				RowCol.Initialize
				RowCol.Header	= CopyRowCol.Header
				RowCol.RowID	= CopyRowCol.RowID
				RowCol.ColID	= CopyRowCol.ColID
				
				Return RowCol
			End If
#End Region

#Region  EventParameter Copy
			If  CopyThis Is TcGridEventParameter Then
				Dim CopyEventParm 	As TcGridEventParameter = CopyThis
				Dim EventParm		As TcGridEventParameter
				
				EventParm.Initialize
				EventParm.EventView	= CopyEventParm.EventView
				EventParm.Extra		= CopyEventParm.Extra
				
				EventParm.RowCol	= MakeCopy(CopyEventParm.RowCol)
				
				Return EventParm
			End If
#End Region
			
			Return Null
End Sub
#end Region
