Извлечение типа выполнения VB6

Большинство этих ответов продолжают говорить, что вы должны называть super.onActivityResult(...) в своем хосте Activity для вашего Fragment. Но, похоже, это не работало для меня.

Итак, в вашем хосте Activity вместо этого вы должны называть свой Fragments onActivityResult(...). Вот пример.

public class HostActivity extends Activity {

    private MyFragment myFragment;

    protected void onActivityResult(...) {
        super.onActivityResult(...);
        this.myFragment.onActivityResult(...);
    }
}

В какой-то момент вашего HostActivity вам нужно будет назначить this.myFragment Fragment, который вы используете. Или используйте FragmentManager, чтобы получить Fragment вместо сохранения ссылки на него в HostActivity. Кроме того, проверьте null, прежде чем пытаться вызвать this.myFragment.onActivityResult(...);.

6
задан marc_s 23 February 2017 в 15:32
поделиться

4 ответа

Я думаю, что Вы ищете, TypeName, а не TypeOf.

If TypeName(foobar) = "CommandButton" Then
   DoSomething
End If

Править: Что Вы имеете в виду Динамические объекты? Вы имеете в виду объекты, созданные с CreateObject (""), причина, которая должна все еще работать.

Править:

Private Sub Command1_Click()
    Dim oObject As Object
    Set oObject = CreateObject("Scripting.FileSystemObject")
    Debug.Print "Object Type: " & TypeName(oObject)
End Sub

Выводы

Object Type: FileSystemObject

8
ответ дан 8 December 2019 в 18:44
поделиться

TypeName - то, что Вы хотите... Вот некоторый вывод в качестве примера:

Код VB6:

Private Sub cmdCommand1_Click()
Dim a As Variant
Dim b As Variant
Dim c As Object
Dim d As Object
Dim e As Boolean

a = ""
b = 3
Set c = Me.cmdCommand1
Set d = CreateObject("Project1.Class1")
e = False

Debug.Print TypeName(a)
Debug.Print TypeName(b)
Debug.Print TypeName(c)
Debug.Print TypeName(d)
Debug.Print TypeName(e)
End Sub

Результаты:

String
Integer
CommandButton
Class1
Boolean
3
ответ дан 8 December 2019 в 18:44
поделиться

У меня нет копии VB6 для вручения, но я думаю, что Вам нужно

Typename()

функция... Я вижу его в Excel VBA, таким образом, это находится, вероятно, в том же времени выполнения. Интересно, справка, кажется, предлагает, чтобы она не должна была работать на пользовательский тип, но это о единственном способе, которым я когда-либо использую ее.

Выборка от справочного файла:

Функция TypeName

Возвращает Строку, которая предоставляет информацию о переменной.

Синтаксис

TypeName (varname)

Необходимым varname аргументом является Вариант, содержащий любую переменную кроме переменной пользовательского типа.

2
ответ дан 8 December 2019 в 18:44
поделиться

Это должно оказаться трудным, с тех пор в VB6 все объекты являются COM (IDispatch) вещи. Таким образом они - только интерфейс.

TypeOf(object) is class вероятно, только делает COM get_interface вызов (я забыл точное имя метода, извините).

0
ответ дан 8 December 2019 в 18:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: