1

多数のリストボックスを組み込んだ xojo アプリケーションがあります。リストボックス オブジェクトの 1 つは、DLBObject という名前です。新しいメソッドを DLBObject に追加して、ドット表記を使用してこれらのメソッドを呼び出せるようにしたいだけです。たとえば、DLBObject.DayForward です。それ、どうやったら出来るの?ありがとう!!!

4

2 に答える 2

3

トーマスの答えは、組み込みクラスの機能を拡張する通常の方法です。サブクラス化は通常、やりたいことです。

ただし、すべての異なるリストボックスとそのサブクラス、または使用できるクラスのすべてのタイプのコントロールまたは親クラス (例: RectControl) で機能を利用可能にしたい場合があります。

そのために、拡張したいクラスのタイプとして最初のパラメーターを持ち、" Extends" キーワードをプレフィックスとして持つ、モジュール内のグローバル メソッドを作成できます。例えば:

Sub AppendToColumn(Extends sender As Listbox, value As String, column As Integer)
  if sender.ListCount > 0 and column > -1 and sender.ColumnCount > column then
    for rowIndex As integer = 0 to sender.ListCount - 1
      sender.Cell(rowIndex, column) = sender.Cell(rowIndex, column) + value
    next
  end if
End Sub

その後、任意のリストボックスでその関数を使用できます...

DLBObject.AppendToColumn(" wibble", 0)

また...

me.AppendToColumn(" wobble", 1)

リストボックスの範囲内から。

于 2014-06-27T22:33:55.100 に答える
3

新しいクラスを作成し、「MyListBox」という名前を付け、そのスーパー名を「ListBox」に設定します。

メソッドをそのクラスに追加します。

次に、ウィンドウで、各リストボックスのSuperを「ListBox」から「MyListBox」に変更します (インスペクターを表示して、リストボックス コントロールのプロパティを確認します)。

これらのリストボックスは、作成した新しい拡張クラスを使用し、追加した新しいメソッドを持ちます。

于 2014-06-25T21:35:04.357 に答える