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

Public Form As FormIf Form.Name <> Empty Then <Формируем нужный интерфейс формы>
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))

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