ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2017年9月25日(月) 15:01

All times are UTC+09:00




新しいトピックを投稿する  トピックへ返信する  [ 4 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2011年6月19日(日) 18:12 
何時も、お世話に成っています。

 行単位での注釈中に"/*"を入れたら以降のプロシージャの名前が認識されない。
但し、"*/ ~ /*"を対で使用する場合は、この限りでない!!

[hide=例)]
Sub MainWnd_CommandButton1_Click()
'ファイル読込(ab_*.sbp/*.txt)
End Sub

Sub MainWnd_CommandButton2_Click()
Debug
End Sub


 MainWnd_CommandButton2_Click が認識されず、ボタンを押下しても反応しない!
[/hide]
宜しくお願いします。


通報する
ページトップ
   
投稿記事Posted: 2011年6月19日(日) 20:06 
オフライン

登録日時: 2006年2月05日(日) 17:10
記事: 189
住所: 東京都
/*を検出した時、*/が見つかるまでのすべてがコメントアウトとみなされます。
だから上記の結果になって当然です。
ABのヘルプに以下の記載がありますのでご確認下さい。


複数行に渡るコメント
/* ~ */ で囲まれた範囲の文字列は、すべて注釈と見なされます。複数行に渡るコメントアウトも可能です。

/* 注釈文1
注釈文2
注釈文3 */

Print /*コマンド行の途中もコメントアウトできます。*/ "test"
備考
"/*" 及び "*/" は、ネスト構造ではありません。コンパイラは、バッファ中から "/*" を識別すると、"*/" が現れるまでサーチを行います。よって、"/*" と "*/" の間に "/*" や "'" などの注釈記号が含まれていたとしても、それらはコメントアウトの対象と判断されます。


通報する
ページトップ
 記事の件名: 行単位での注釈
投稿記事Posted: 2011年6月20日(月) 00:45 
件名は、こちらの方が正しいですね。

>/*を検出した時、*/が見つかるまでのすべてがコメントアウトとみなさ>れます。
 複数行に渡るコメントの場合は、その通りでしょう。

>ABのヘルプに以下の記載がありますのでご確認下さい。
 [行単位での注釈]
「アポストロフィー(')を指定します。改行までが注釈文となります。」
と、在ります。
 よって、アポストロフィー(')以降は、如何なる文字やコマンドも処理過程に一切影響を及ぼさないため、注釈文として活用できる筈ですが。


通報する
ページトップ
   
投稿記事Posted: 2011年6月20日(月) 12:51 
オフライン

登録日時: 2006年2月05日(日) 17:10
記事: 189
住所: 東京都
アポストロフィー(')に気が付かなくて大変申し訳ありませんでした。

テストしたところ
●該当箇所の"'ファイル読込(ab_*.sbp/*.txt)"以降のコードがコメントとして認識されているようです。
●だからCommandButton2をクリックしても当然動作しません。
●さらにウインドーを閉じてもウインドーを閉じた時の処理も認識されていないのでプログラムは実行中のままです。タスクマネージャーで確認しました。これは修正してコンパイルしたときに「出力ファイルの書き込みに失敗しました。実行されている可能性があります。」とメッセージが表示され判明したのです。

なので現在の対応として /* */とアポストロフィー(')を隣接した箇所で使用しないほうがよいと思います。
[hide]
コード:
/'-----------------------------------------------------------------------------
'  イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hMainWnd

' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。


'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数

Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As LRESULT
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
' イベントプロシージャの呼び出しを行います。
  MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function


'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。

Sub MainWnd_CommandButton1_Click()
  SetDlgItemText(hMainWnd,EditBox1,"CommandButton1_Click!")
  'ファイル読込(ab_*.sbp/*.txt)
End Sub

Sub MainWnd_CommandButton2_Click()
  SetDlgItemText(hMainWnd,EditBox1,"CommandButton2_Click!")
End Sub

Sub MainWnd_Destroy()
  TEST_DestroyObjects()
  PostQuitMessage(0)
End Sub
[/hide]
●2011年06月21日(火) 記事を修正しました。


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 4 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by KONISHI Yohsuke