ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月20日(土) 01:27

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 6 件の記事 ] 
作成者 メッセージ
 記事の件名: SetTimerで
投稿記事Posted: 2005年9月22日(木) 17:55 
オフライン

登録日時: 2005年5月31日(火) 13:31
記事: 205
お住まい: 大阪市
Sub 識別名_Timer(TimerID As DWord)

End Sub
と言うのを「識別名ファイル.abp」以外のファイルに記入すると動作しないのですが、これは仕様なのでしょうか?
(MainWnd.sbpに通常は記入しますが、新しくWindowTimer.abpにSub 識別名_Timer~と記入してSetTimerで呼び出しても動作しない)

処理が多いので別のファイルに記入して見やすくしたいのですが・・・


通報する
ページトップ
 記事の件名: Re: SetTimerで
投稿記事Posted: 2005年9月22日(木) 21:38 
こんばんは、てふろんです。

恐らく仕様でしょう。

MainWnd.sbp しか見ないのはたしかに不便ではありますが、
callback.wbp はプロジェクトエディタで管理されていると思うので、
ファイル全てを字句検索して callback.wbp の更新をするとなると、
場合によってはコンパイル速度にかなり影響がでそうな気がします。

(コンパイラとは別なので字句解析が二度手間になる可能性が...)

MainWnd.sbp が肥大化するのが問題なのでしたら、WM_TIMER に限らず、
イベントプロシージャからそのまま別のプロシージャを呼び出すよう、
コードを書きかえる事で問題は解決するかなぁとも思います。
コード:
' MainWnd.sbp
Sub MainWnd_Create( ByRef CreateStruct As CREATESTRUCT )
OnCreate(CreateStruct)
End Sub

Sub MainWnd_Timer( TimerID As DWord )
OnTimer( TimerID )
End Sub

' 別ファイル1
Sub OnCreate( ByRef CreateStruct As CREATESTRUCT )
End Sub

' 別ファイル2
Sub OnTimer( TimerID As DWord )
End Sub
これだけでも MainWnd.sbp はすっきりすると思います。


通報する
ページトップ
   
 記事の件名: Re: SetTimerで
投稿記事Posted: 2005年9月22日(木) 22:01 
オフライン

登録日時: 2005年5月31日(火) 13:31
記事: 205
お住まい: 大阪市
>
コード:
> ' MainWnd.sbp
> Sub MainWnd_Create( ByRef CreateStruct As CREATESTRUCT )
> OnCreate(CreateStruct)
> End Sub
> 
> Sub MainWnd_Timer( TimerID As DWord )
> OnTimer( TimerID )
> End Sub
> 
> ' 別ファイル1
> Sub OnCreate( ByRef CreateStruct As CREATESTRUCT )
> End Sub
> 
> ' 別ファイル2
> Sub OnTimer( TimerID As DWord )
> End Sub
> 
>
> これだけでも MainWnd.sbp はすっきりすると思います。

そうですね、そうしてみます。
てふろんさん、ありがとうございます。


通報する
ページトップ
 記事の件名: Re: SetTimerで
投稿記事Posted: 2005年9月23日(金) 00:13 
オフライン

登録日時: 2005年6月04日(土) 10:09
記事: 72
引用:
> (MainWnd.sbpに通常は記入しますが、新しくWindowTimer.abpにSub 識別名_Timer~と記入してSetTimerで呼び出しても動作しない)
とりあえず.abpを.sbpに変えて(これは本質的ではないですが..)、
プロジェクトビュー→[File]タブの[Source Files]を右クリック→[ファイルを挿入]で先ほどの.sbpファイルを指定すればOKだと思います。


通報する
ページトップ
 記事の件名: Re: SetTimerで
投稿記事Posted: 2005年9月23日(金) 00:25 
オフライン

登録日時: 2005年5月31日(火) 13:31
記事: 205
お住まい: 大阪市
Tomorrowさん、回答ありがとうございます。
しかし、動作しませんでした。(AB 4.10.00)

やっぱりMainWnd.sbp経由で書くしかないのですかね・・・


通報する
ページトップ
 記事の件名: Re: SetTimerで
投稿記事Posted: 2005年9月23日(金) 00:45 
オフライン

登録日時: 2005年6月04日(土) 10:09
記事: 72
引用:
> Tomorrowさん、回答ありがとうございます。
> しかし、動作しませんでした。(AB 4.10.00)
>
> やっぱりMainWnd.sbp経由で書くしかないのですかね・・・
よく調べずに答えてしまってすみません。こちらでも動作しなかったです。
やはり***_Timer()などのイベント処理関数は***.sbpファイルに書くしかないみたいです。(てふろん さんが答えているように***.sbpから関数を削除するとCallback.wbpからの呼び出し部分も削除されるため)


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

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Ahrefs [Bot] & ゲスト[12人]


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

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