喫茶XRAYトップページ


[7110] イベント処理にご注意返信 削除
2013/12/16 (月) 01:36:22 Mr.XRAY
私が使っている検索ツールは,二チャンネルは検索対象から外しているのですが,
何かの検索をしていたら,そのリンクに二チャンネルがありました.
まだ,こんなのがあるんですね.昔はよく見たような.

http://toro.2ch.net/test/read.cgi/tech/1353119767/l50

下の方からみていたら,ダウンロードできるファイルがあったので,
ダウンロードしてみました.
えーと,528 番のです.

Delphi XE でプロジェクトを開こうとしたら,失敗.
みたら,529 に XE4 と書いてあったけど,以下のサンプルを使用して
Delphi XE でも使えるようにして,Delphi XE で起動してみました.

[03_uses 部にユニットスコープ名を追加 ( Delphi XE2 以上用 )]
http://mrxray.on.coocan.jp/Delphi/plSamples/000_CommandLineCompile.htm#03

コンパイルして,実行,Windows に付いてきている mp3 を開いて...
ありゃー !!?
以下は,MediaPlayre1のOnNotifyイベントのコードです.

procedure Tmp3.MediaPlayer1Notify(Sender: TObject);
begin
  if FileListBox1.ItemIndex=FileListBox1.Items.Count-1 then
    FileListBox1.ItemIndex:=0 else FileListBox1.ItemIndex:=FileListBox1.ItemIndex+1;
    MediaPlayer1.FileName := FileListBox1.FileName;
    MediaPlayer1.Rewind;
    MediaPlayer1.Play;

end;

この上のコードは,次のイベント処理と似ています.
上のコードは,ほとんどこれと近い再帰処理(に似た処理)を実行することになります.
しかし,何でこんなコードになっちゃたんでしょうね.
(調べる気も,記事を読み気もしませんので.これまで)

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1Click(Sender);
end;

もしかしたら,参考になるかも知れないので書いておきました.
私も気付かないでやることがあります.特にフック関係のサンプルの場合.
良い子の皆さんは,こんなことやらないと思いますが.


[7111] メッセージ処理に注意返信 削除
2013/12/17 (火) 13:21:30 Mr.XRAY
自分で検索するのが面倒な方への追加情報です.

Notify というは「通知」という意味です.
この場合,TMediaPlayer で何かメッセージが発生するとその通知を受け取る
イベント処理というわけです.
では,どんな通知かというと,

[Vcl.MPlayer.TMediaPlayer.OnNotify]
http://docwiki.embarcadero.com/Libraries/XE5/ja/Vcl.MPlayer.TMediaPlayer.OnNotify

ということで,Play,Rewind を実行すると,この OnNotiry イベントが呼ばれる
ことになります.すると,また Rewind, Play が実行されます.
すると,またこの OnNotiry イベントが実行されます.
てなわけで,このイベントからは,未来永劫にわたって,脱出できない.
ということになります.

でも,プロジェクトが UP してあるということは,Delphi XE4 では正常に
動作するのかも知れません.Delphi XE4 では,このコードでも正常に動作
させる仕組みがあるのかも知れません.
私のテストは,Windows 7 U64(SP1) + Delphi XE Pro ですので.


[7112] Re:メッセージ処理に注意返信 削除
2013/12/17 (火) 17:06:33 taki
▼ Mr.XRAYさん
 
> でも,プロジェクトが UP してあるということは,Delphi XE4 では正常に
> 動作するのかも知れません.Delphi XE4 では,このコードでも正常に動作
> させる仕組みがあるのかも知れません.


 ttp://ime.nu/www1.axfc.net/u/3115934.zip は現在

404 Not Found
ファイルが見つかりません
既にファイルが削除されたか、期限切れに…

になっています。Delphi XE4のスペシャルな仕組みは特定○○です。


[7113] Re2:メッセージ処理に注意返信 削除
2013/12/17 (火) 17:57:08 Mr.XRAY
▼ takiさん
 
>既にファイルが削除されたか、期限切れに…
>
> になっています。Delphi XE4のスペシャルな仕組みは特定○○です。


ありゃ,そうなんですか.もう適用ですか.審議終了したばかりなのに
(審議はなかったのか ?)

今,もう一度読み返してみたんですが,
これって,添削依頼みたいだったんですね.
ろくに読みもしないで,なんだべ,と思ってダウンロードしたんですが.
当方も,もう削除してしまったので確認できないです.

二チャンネルのやり取りって面白いですね.
もしかしたら,この関係だけかも知れませんが,
誰が誰だか分からないし,この関係のレスを読んでみると,
なんか的が外れているような... (^^;


INCM/CMT
Cyclamen v3.82