NEW

ページ名:NEW
  • NEW

Object = NEW Class [ ( Constructor parameters... ) ] [ AS Name ]

クラスClassをインスタンス化します。
名前が指定されている場合、新しいオブジェクトはその「親」でパブリックプロシージャまたは関数を呼び出すことによってイベントを発生させることができます。

  1. この親、またはデフォルトのイベントオブザーバは、新しいオブジェクトがインスタンス化されるオブジェクトまたはクラスです。
  2. このイベントハンドラの名前は、オブジェクトの名前の後にアンダースコアとイベントの名前が続きます。
名前部分を指定し忘れた場合、オブジェクトはイベントを発生させません。
NEWは演算子ではありません。 あなたは課題の中でのみ使うことができます。

しかし、代わりにObject.New関数を使うことができます。

Common event handlers

2つの異なるオブジェクトに同じイベント名を付けることができます。 したがって、これらのオブジェクトが同じイベントを発生させるという条件で、同じイベントプロシージャ内で複数のオブジェクトのイベントを管理できます。

この機能は、Groupプロパティを実装するためにIDEによって使用されます。

Instantiating Forms (GUI components)

Formクラスは、デフォルトではイベント名Formを使用して、独自のイベントオブザーバです。 これはあなたが書くことを可能にするものです。

Public Sub Form_Open()
Print "I'm here"
En

同じフォームのイベントをインターセプトするための、フォームのクラスファイル内。

New MyForm As Name構文を使用してフォームのインスタンスを作成しても、これは起こりません。 フォームは現在のオブジェクトにアタッチされ、特に(各オブジェクトは最大で1つのデフォルトイベントオブザーバを持つことができるため)それ自体にアタッチされることはありません。

そのため、フォームのコード内のForm_Open()イベントハンドラは呼び出されなくなります。 複数のクラスが単一のオブジェクトのイベントを受け取るようにしたい場合は、Observerクラスを使用します。

Examples

hButton = New Button(Me) As "MyButton"
...
Public Procedure MyButton_Click()

Print
"My button was clicked !"

End

 

'この例では、9 * 9 * 9の小さなテキストボックスを作成します。

' public Object[] array objIsImpossible

Public bIsInitialised As Boolean
Public objIsImpossible As Object[]

Public Sub Form_Open()

Dim iR As
Integer
Dim iR2 As Integer
Dim iC As Integer
Dim iC2 As Integer
Dim iDigit As Integer
Dim iX As Integer
Dim objTextBox As TextBox

If Not bIsInitialised Then
objIsImpossible = New
Object[] ' Need to create the array
iX = 0
For iR = 0 To 8
For iC = 0 To 8
For iDigit = 0 To 8
iR2 = iDigit Mod 3
iC2 = iDigit / 3
objTextBox = New TextBox(Me) ' create the next of the 9*9*9 TextBoxes
objTextBox.X = (iR * 3 + iR2) * 12 + 2
objTextBox.y = (iC * 3 + iC2) * 12 + 2
objTextBox.Width = 10
objTextBox.Height = 10

objIsImpossible.Add(objTextBox, iX)

iX = iX +
1
Next ' iDigit
Next ' iC
Next ' iR
Endif

End

Dynamic instanciation

Object = NEW ( ClassName [ , Constructor parameters... ] ) [ AS Name ]

この2番目の構文では、クラス名を文字列として動的に指定できます。

Examples

'これは3×3のfloat配列を作成します。

Dim MyArray As New Float[3, 3]
' And this too
Dim MyArray As Object
Dim MyClassName As String
MyClassName = "Float[]"
MyArray = New (MyClassName, 3, 3)

See also

 

 

 

 

 

 

 

 

 

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧