|
Option Explicit
Private Sub Command1_Click()
Static NewPos As Integer
NewPos = NewPos + 1
Call RotBut(Command1, IIf(NewPos - 1 = -1, 3, NewPos - 1), _
IIf(NewPos = 4, 0, NewPos))
If NewPos = 4 Then NewPos = 0
End Sub
Private Sub RotBut(ByVal Button As CommandButton, _
ByVal CurAng As Byte, ByVal NextAng As Byte)
Dim ButCap As String
Dim ChgButtonPos As Boolean
Dim NCap As String
Dim i As Integer
ChgButtonPos = True
Select Case CurAng
Case 0
ButCap = Button.Caption
If NextAng = 0 Or NextAng = 2 Then
ChgButtonPos = False
End If
Case 1
For i = 0 To Len(Button.Caption) Step 3
ButCap = ButCap & Mid(Button.Caption, i + 3, 1)
Next i
If NextAng = 1 Or NextAng = 3 Then
ChgButtonPos = False
End If
Case 2
For i = Len(Button.Caption) To 1 Step -1
ButCap = ButCap & Mid(Button.Caption, i, 1)
Next i
If NextAng = 0 Or NextAng = 2 Then
ChgButtonPos = False
End If
Case 3
For i = 0 To Len(Button.Caption) Step 3
ButCap = ButCap & Mid(Button.Caption, i + 3, 1)
Next i
NCap = ""
For i = Len(ButCap) To 1 Step -1
NCap = NCap & Mid(ButCap, i, 1)
Next i
ButCap = NCap
If NextAng = 1 Or NextAng = 3 Then
ChgButtonPos = False
End If
End Select
Select Case NextAng
Case 0
Case 1
For i = 0 To Len(ButCap) * 2
If i Mod 2 = 0 Then
NCap = NCap & vbNewLine
Else
NCap = NCap & Mid(ButCap, Int(i / 2) + 1, 1)
End If
Next i
ButCap = NCap
Case 2
For i = Len(ButCap) To 1 Step -1
NCap = NCap & Mid(ButCap, i, 1)
Next i
ButCap = NCap
Case 3
For i = 0 To Len(ButCap) * 2
If i Mod 2 = 0 Then
NCap = NCap & vbNewLine
Else
NCap = NCap & Mid(ButCap, Int(i / 2) + 1, 1)
End If
Next i
ButCap = NCap
NCap = ""
For i = Len(ButCap) To 0 Step -1
NCap = NCap & Mid(ButCap, i + 1, 1)
Next i
ButCap = NCap
End Select
If ChgButtonPos = True Then
Dim SwapHelpW As Integer
Button.Left = (Button.Left + Button.Width / 2) _
- Button.Height / 2
Button.Top = (Button.Top + Button.Height / 2) _
- Button.Width / 2
SwapHelpW = Button.Width
Button.Width = Button.Height
Button.Height = SwapHelpW
End If
Button.Caption = ButCap
End Sub
|