Есть форма frmForm, содержащая переменную
- Код: Выделить всё
Public Form As Form
- Код: Выделить всё
If Form.Name <> Empty Then <Формируем нужный интерфейс формы>
Public Form As Form
If 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 If
Bar.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))
Сейчас этот форум просматривают: SemrushBot и гости: 41