В каких случаях эти фрагменты кода приводят к разным результатам?
- Код: Выделить всё
Select Case x
Case y, z: MsgBox "Ура!"
End Select
- Код: Выделить всё
Select Case x
Case z, y: MsgBox "Ура!"
End Select
Select Case x
Case y, z: MsgBox "Ура!"
End Select
Select Case x
Case z, y: MsgBox "Ура!"
End Select
tyomitch писал(а):t116, не понял. Можно пример?
Dim X, Y, Z
Main()
X = 12
Select Case X
Case fY(), fZ(): Msgbpx ("Ура!")
End Select
End Sub
Function fY()
Y = 4 * Z
fY = Y
End Function
Function fZ()
Z = Y / 2
fZ = Z
End Function
Dim X, Y, Z
Main()
X = 12
Select Case X
Case fZ(), fY(): Msgbpx ("Ура!")
End Select
End Sub
Function fY()
Y = 4 * Z
fY = Y
End Function
Function fZ()
Z = Y / 2
fZ = Z
End Function
Dim X, nY, nZ
Sub Main()
X = 4
nY = 1
nZ = 1
Select Case X
Case Y(), Z(): MsgBox ("Ура!")
End Select
End Sub
Function Y()
nY = 4 * nZ
Y = nY
End Function
Function Z()
nZ = nY / 2
Z = nZ
End Function
Sub Main()
Dim X, Y, Z
X = 42
Y = X
Z = CVErr(X)
Select Case X
Case Y, Z: MsgBox ("Ура!")
End Select
End Sub
Const Y = 10
Const Z = "Лалалала"
Dim X As Integer
Sub Main()
X = 10
Select Case X
Case Y, Z: MsgBox "Оба!"
End Select
End Sub
Sub Main()
X% = 10
Y$ = "Привет"
Z% = 10
Select Case X
Case Y, Z: MsgBox "Пока!"
End Select
End Sub
Sub Main()
Dim X%, Y%, Z$
Select Case X
Case Y, Z: MsgBox "Ура!"
End Select
End Sub
iGrok писал(а):Хм.. А в чем прикол-то? Ну подсовываете вы ему аргумент неправильного типа.. Ну ругается он на него.. =)
ИМХО пример с ф-циями от t116 и объектами от GSerg более "правильный"..
Option Explicit
Private Declare Sub PutMem1 Lib "msvbvm60" (ByVal pDst As Long, ByVal Src As Byte)
Public Sub CreateMagic(Pointer, PointedTo)
Dim lPtr As Long: lPtr = Pointer
Pointer = VarPtr(PointedTo) + 8
PutMem1 VarPtr(Pointer) + 1, &H40
PutMem1 VarPtr(PointedTo) + 1, &H40
Pointer = lPtr
End Sub
Sub s(pc, z)
Dim x As Long, y As Long
pc = VarPtr(y) - 36
z = 0&
Call CreateMagic(pc, z)
x = 10
y = Not x
z = x
Select Case x
Case y, z: MsgBox "Ура!"
End Select
Select Case x
Case z, y: MsgBox "Ура!"
End Select
End Sub
Sub Main()
Dim pc As Variant, z As Variant
Call s(pc, z)
End Sub
Сейчас этот форум просматривают: Google-бот, Majestic-12 [Bot] и гости: 39