|
▼bykin さん:
>任意に停止/再開を繰り替えすんやったら、一旦プロシージャを抜けるようにして、
>フラグで判定すればええんとちゃいまっか?
ponponです。早速の回答ありがとうございます。
試してみました。ばっちりです。しかし、・・・
CurrentPos
Flg
の使い方がいまいちよくわかりません。
Flgの方は時々コードに出てくるので、何となく判定に使っていることはわかります。
この場合でいうと、一時停止の時にFlgをfalseにして、一旦プロシージャを抜ける。ということなんでしょうが。
>Sub 一時停止()
> If Flg Then Flg = False
>End Sub
Sub 移動開始()やfunctionを実行しているときに、FlgがFalseになることで
一旦プロシージャを抜けるというのが、理解できません。すみません。
CurrentPos(カレントポジション?)というのは、stopしたところの頂点340+iの値だと思うのですが、
>Sub 移動開始()
> If Not Flg Then
> Flg = True
CurrentPos = 頂点の移動(CurrentPos)
↑この意味がわかりません。
> End If
>End Sub
また、Function 頂点の移動は、Flgがtrueの時は、頂点を動かし、Flgがfalseの時は、頂点のiの値を返す関数だと思うのですが、
CurrentPos = 頂点の移動(CurrentPos)で移動が再開されるのかが、どうしてもわかりません。
コードに書かれていることは、何となくわかるのですが、意味が理解できません。
もし、時間があるのでしたら、考え方を教えていただけないでしょうか?
こういった手法は、本にはあまり書かれていません。本を頼りに今まで下手なコードですましてきていますので、脱初心者へのステップにしたいと考えています。よろしくお願いします。
>Function 頂点の移動(ByVal Counter As Long) As Long
> Dim i As Long
>
> With Triangle
> With .Nodes
> For i = Counter To 250 Step 2
> If Flg Then
> If Counter = 250 Then Flg = False
> .SetPosition 2, 340 + i, 100
> DoEvents
> Sleep 100
> Else
> 頂点の移動 = i
> Exit Function
> End If
> Next
> End With
> .Fill.Visible = msoTrue
> .Line.DashStyle = msoLineSolid
> End With
> Flg = False
> 頂点の移動 = 0
>End Function
|
|