by Mario2 » 2005年8月03日(水) 00:56
やっと本当?に質問したかった物が再現しました。
でも、何故か100行ぐらいをコピペ、別のabpファイルに貼り付けても現象が発生しないと言う現象でした。ただし、ある条件に一致?すると、再現することが判明しました。
たとえば、下記のソースがあります。
コード: 全て選択
/*Sub MainWnd_KeyDown(KeyCode As Long, flags As Long)
Dim Key As Long
Key=KeyCode
If Key=&H26 Then '↑キー(KeyUp)
MessageBox(0,"0",0,0)
ElseIf Key=&H28 Then '↓キー(KeyDown)
MessageBox(0,"1",0,0)
ElseIf Key=&H25 Then '←キー(KeyLeft)
MessageBox(0,"2",0,0)
ElseIf Key=&H27 Then '→キー(KeyRight)
MessageBox(0,"3",0,0)
End If
End Sub*/
Sub MP3List(OP As Long)
Dim num As Long
If OP=1 Then
If SendMessage(List,LB_FINDSTRING,0,buffer)=LB_ERR Then
SendMessage(List,LB_ADDSTRING,0,buffer)
SendMessage(List,LB_SELECTSTRING,0,buffer)
End If
ElseIf OP=2 Then
num=SendMessage(List,LB_GETCURSEL,0,0)
SendMessage(List,LB_GETTEXT,num,buffer)
End If
End Sub
/*Sub MP3List()
Dim num As Long
Dim buf As String
Dim ss As Long
buf=ZeroString(110)
num=SendMessage(List,LB_GETCURSEL,0,0)
SendMessage(List,LB_ADDSTRING,0,buffer)
SendMessage(List,LB_GETTEXT,num,buffer)
If num=LB_ERR Then
Exit Sub
End If
'ss=SendMessage(List,LB_FINDSTRING,-1,buffer)
ss=SendMessage(List,LB_SELECTSTRING,0,buffer)
If ss=LB_ERR Then
Else
SendMessage(List,LB_DELETESTRING,ss,0)
End If
End Sub*/
Sub MainWnd_CommandButton1_Click()
/* Dim a as Long
a=""
MoveWindow(hMainWnd,"",0,299,405,TRUE)*/
End Sub
形式としては
/*複数行
コメント*/
Sub *****()
実行部分
End Sub
/*複数行
コメント*/
となっていれば再現するかと思います。(各部分はそれなりに行数が無いと発生しないみたいです。)
そして、もっとも確認できるのが、デバッグコンパイルでも、リリースコンパイルでも何でも実行して、ProjectEditor内にコンパイラを表示させ、エディタのスクロールを一番下まで下げると、コメントアウトされているはずの部分がコメントアウトされているにも関わらず、色が反映されていません(最初の3文字はコメントアウトの色になっているみたいですけど・・・)。
やっと本当?に質問したかった物が再現しました。
でも、何故か100行ぐらいをコピペ、別のabpファイルに貼り付けても現象が発生しないと言う現象でした。ただし、ある条件に一致?すると、再現することが判明しました。
たとえば、下記のソースがあります。
[code]/*Sub MainWnd_KeyDown(KeyCode As Long, flags As Long)
Dim Key As Long
Key=KeyCode
If Key=&H26 Then '↑キー(KeyUp)
MessageBox(0,"0",0,0)
ElseIf Key=&H28 Then '↓キー(KeyDown)
MessageBox(0,"1",0,0)
ElseIf Key=&H25 Then '←キー(KeyLeft)
MessageBox(0,"2",0,0)
ElseIf Key=&H27 Then '→キー(KeyRight)
MessageBox(0,"3",0,0)
End If
End Sub*/
Sub MP3List(OP As Long)
Dim num As Long
If OP=1 Then
If SendMessage(List,LB_FINDSTRING,0,buffer)=LB_ERR Then
SendMessage(List,LB_ADDSTRING,0,buffer)
SendMessage(List,LB_SELECTSTRING,0,buffer)
End If
ElseIf OP=2 Then
num=SendMessage(List,LB_GETCURSEL,0,0)
SendMessage(List,LB_GETTEXT,num,buffer)
End If
End Sub
/*Sub MP3List()
Dim num As Long
Dim buf As String
Dim ss As Long
buf=ZeroString(110)
num=SendMessage(List,LB_GETCURSEL,0,0)
SendMessage(List,LB_ADDSTRING,0,buffer)
SendMessage(List,LB_GETTEXT,num,buffer)
If num=LB_ERR Then
Exit Sub
End If
'ss=SendMessage(List,LB_FINDSTRING,-1,buffer)
ss=SendMessage(List,LB_SELECTSTRING,0,buffer)
If ss=LB_ERR Then
Else
SendMessage(List,LB_DELETESTRING,ss,0)
End If
End Sub*/
Sub MainWnd_CommandButton1_Click()
/* Dim a as Long
a=""
MoveWindow(hMainWnd,"",0,299,405,TRUE)*/
End Sub
[/code]
形式としては
/*複数行
コメント*/
Sub *****()
実行部分
End Sub
/*複数行
コメント*/
となっていれば再現するかと思います。(各部分はそれなりに行数が無いと発生しないみたいです。)
そして、もっとも確認できるのが、デバッグコンパイルでも、リリースコンパイルでも何でも実行して、ProjectEditor内にコンパイラを表示させ、エディタのスクロールを一番下まで下げると、コメントアウトされているはずの部分がコメントアウトされているにも関わらず、色が反映されていません(最初の3文字はコメントアウトの色になっているみたいですけど・・・)。