Есть форма frmForm, содержащая переменную
- Код: Выделить всё
- Public Form As Form
- Код: Выделить всё
- If Form.Name <> Empty Then <Формируем нужный интерфейс формы>

Public Form As FormIf Form.Name <> Empty Then <Формируем нужный интерфейс формы> Form.rar
 Form.rar
If Form.Name <> Empty

Как правильно

 
 
Option Explicit
Public Form As Form
Private Sub Command1_Click()
    Set Form = Me
    IsForm
End Sub
Private Sub Command2_Click()
    Set Form = Nothing
    IsForm
End Sub
Private Sub IsForm()
    Dim b As Boolean
    b = Form Is Form
    If b = True Then
        Label1.Caption = "Переменная определена, значение = " & Form.Name
    Else
        'Здесь появляется ошибка
        Label1.Caption = "Переменная не определена"
    End If
End Sub
b = Form Is Form
True
Label1.Caption = "Переменная определена, значение = " & Form.Name 
Private Sub Command2_Click() 
    Set Form = Nothing 
    IsForm 
End Sub 
Public Form As Form 
bFlag = (Form1 Is Nothing) - работает bFlag = (Form1 Is "SomeForm") - нет работает If TypeOf Form1 Is frmForm1 Then MsgBox "-1" - работает

Option Explicit
Public Form As Form
Private Sub Command1_Click()
    Set Form = Me
    IsForm
End Sub
Private Sub Command2_Click()
    Set Form = Nothing
    IsForm
End Sub
Private Sub IsForm()
    Dim b As Boolean
    b = (Form Is Nothing)
    If b = False Then
        Label1.Caption = "Переменная определена, значение = " & Form.Name
    Else
        'Здесь появляется ошибка
        Label1.Caption = "Переменная не определена"
    End If
End Sub



sergey-911 писал(а):
- Код: Выделить всё
...
Dim b As Boolean
b = (Form Is Nothing)
If b = False Then
...

'Настройка тулбара, в зависимости от значения Form
If (Form Is Nothing = True) Then
    Call Bar.LoadBar(Bar.MDI.SSActiveToolBars1, Me)
Else
    Call Bar.LoadBar(Bar.MDI.SSActiveToolBars1, Me, True)
End If


If Form Is Nothing Then 
    Call Bar.LoadBar(Bar.MDI.SSActiveToolBars1, Me) 
Else 
    Call Bar.LoadBar(Bar.MDI.SSActiveToolBars1, Me, True) 
End IfBar.LoadBar Bar.MDI.SSActiveToolBars1, Me, Not Form Is Nothing
Bar.LoadBar Bar.MDI.SSActiveToolBars1, Me, Not Form Is Nothing


Private Sub Command1_Click()
    '
    If IsForm(Form2) Then
        Form2.Show
        Form2.Caption = "Hallo1"
    Else
        Set Form2 = New Form2
        Form2.Show
        Form2.Caption = "Hallo"
    End If
    '
End Sub
Public Function IsForm(ByVal f As Form) As Boolean
    '
    IsForm = IIf(ObjPtr(f) > 0, True, False)
    '
End Function



Хакер писал(а):Фу.. бред...
 
 
 ну вдруг ты уже знаеш
 ну вдруг ты уже знаеш  

Public Function VBIsNothing(object As Object) As Boolean
    '
    VBIsNothing = IIf(ObjPtr(object) = 0, True, False)
    '
End Function


Dmitriy2003 писал(а):Получается, отбросив предрассудки, следующее...
- Код: Выделить всё
Public Function VBIsNothing(object As Object) As Boolean
'
VBIsNothing = IIf(ObjPtr(object) = 0, True, False)
'
End Function
тормозит то как аж в 3 разу! Настоящее извращение!
 ?
  ?

Хакер писал(а):Да что у вас за извращение? Сравнивать True c True и возвращать True, или True c False и возвращаться False?
Чем тебя строка VBIsNothing = (ObjPtr(object) = 0
не устроила?
или VBIsNothing = Not CBool(ObjPtr(object)) ?
Извращенцы...
VBIsNothing = (ObjPtr(object) = 0 
VBIsNothing = Not CBool(ObjPtr(object))


Сейчас этот форум просматривают: AhrefsBot и гости: 13