Index: trunk/Include/Classes/System/Collections/Generic/List.ab
===================================================================
--- trunk/Include/Classes/System/Collections/Generic/List.ab	(revision 339)
+++ trunk/Include/Classes/System/Collections/Generic/List.ab	(revision 340)
@@ -97,4 +97,20 @@
 		size++
 	End Sub
+
+	/*!
+	@brief	List内で最初に出現する値を削除する
+	@author	Daisuke Yamamoto
+	@date	2007/09/28
+	@return	値が削除されたときはTrue、されなかったときはFlaseが返る
+	*/
+	Function Remove( item As T ) As Boolean
+		Dim index = IndexOf( item )
+		If index = -1 Then
+			Return False
+		End If
+		memmove( items + index*SizeOf(VoidPtr), items + (index+1)*SizeOf(VoidPtr), (size-(index+1))*SizeOf(VoidPtr) )
+		Realloc( size - 1 )
+		Return True
+	End Function
 End Class
 
Index: trunk/Include/Classes/System/Delegate.ab
===================================================================
--- trunk/Include/Classes/System/Delegate.ab	(revision 339)
+++ trunk/Include/Classes/System/Delegate.ab	(revision 340)
@@ -1,11 +1,19 @@
 Namespace System
+
 
 Class _SimpleDelegate
 Public
+	hasThisPtr As Boolean
 	object As Object
 	methodPtr As VoidPtr
 
 	Sub _SimpleDelegate( object As Object, methodPtr As VoidPtr )
+		This.hasThisPtr = True
 		This.object = object
+		This.methodPtr = methodPtr
+	End Sub
+	Sub _SimpleDelegate( methodPtr As VoidPtr )
+		This.hasThisPtr = False
+		This.object = Nothing
 		This.methodPtr = methodPtr
 	End Sub
@@ -16,11 +24,20 @@
 	simpleDelegates As System.Collections.Generic.List<_SimpleDelegate>
 
+	Sub _Add( dg As DelegateBase )
+		Dim i As Long
+		For i=0 To ELM(dg.simpleDelegates.Count)
+			simpleDelegates.Add( dg.simpleDelegates[i] )
+		Next
+	End Sub
+
 Public
 	Sub DelegateBase()
 		simpleDelegates = New System.Collections.Generic.List<_SimpleDelegate>()
 	End Sub
-	Sub Add( sd As System._SimpleDelegate )
-		simpleDelegates.Add( sd )
-	End Sub
+
+/*
+	Sub Operator + ( sd As System._SimpleDelegate )
+		Add( sd )
+	End Sub*/
 Public
 End Class
@@ -28,2 +45,10 @@
 
 End Namespace
+
+
+Function _System_CreateSimpleDynamicDelegate( object As Object, methodPtr As VoidPtr ) As System._SimpleDelegate
+	Return New System._SimpleDelegate( object, methodPtr )
+End Function
+Function _System_CreateSimpleStaticDelegate( methodPtr As VoidPtr ) As System._SimpleDelegate
+	Return New System._SimpleDelegate( methodPtr )
+End Function
Index: trunk/Include/Classes/System/Runtime/InteropServices/GCHandle.ab
===================================================================
--- trunk/Include/Classes/System/Runtime/InteropServices/GCHandle.ab	(revision 339)
+++ trunk/Include/Classes/System/Runtime/InteropServices/GCHandle.ab	(revision 340)
@@ -1,5 +1,3 @@
 ' Classes/System/Runtime/InteropServices/GCHandle.ab
-
-#require <Classes/System/Collections/ArrayList.ab>
 
 Namespace System
@@ -69,5 +67,5 @@
 	handle As VoidPtr
 
-	Static allocated As /*System.Collections.*/ArrayList
+	Static allocated = New System.Collections.Generic.List<Object>
 End Class
 
