Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2017/03/31 (金)

ウィンドウスタイルの設定で大間違いを犯していたラシイ・・・

| 00:51 | ウィンドウスタイルの設定で大間違いを犯していたラシイ・・・ - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - ウィンドウスタイルの設定で大間違いを犯していたラシイ・・・ - 雪乃☆雫のなでしこ日和 ウィンドウスタイルの設定で大間違いを犯していたラシイ・・・ - 雪乃☆雫のなでしこ日和 のブックマークコメント

 カメラのプログラムを見返していて・・・とんだことに気が付きました。

 ウィンドウスタイルのフラグ?を設定するについて、盛大な勘違いをしていたっぽいです(汗)

 とりあえず、このよーに指定していたわけですが・・・

!WS_VISIBLEとは整数=$10000000  #(初期状態)
!WS_CHILDとは整数=$40000000   #(子ウィンドウ)
CWスタイルとは整数=WS_VISIBLE+WS_CHILD  #キャプチャーウィンドウのスタイル

 元ネタのコードを見ていたらね、なんと「+」ではなく「OR」でした!

 「和」ではなく「論理和」。日本語で言ったら「または」。

× CWスタイルとは整数=WS_VISIBLE+WS_CHILD
  ↓ ↓ ↓
○ CWスタイルとは整数=WS_VISIBLE||WS_CHILD

 マニュアルによると「||」が「OR」のコトらしく「(WS_VISIBLE)OR(WS_CHILD)」と同じことです。

 つーか、も論理和って何?

 またはって言ったら、どっちかってことじゃないんすか><


 ちなみに・・・

 「WS_VISIBLE+WS_CHILD」と「WS_VISIBLE||WS_CHILD」

 答えはどちらも「$50000000」となり、それゆえ特に問題は起こりません。

 では、一体何が違うのか。

 てゆうかだから、論理和って一体なんなの?!


マニュアル→(ハ)機能の紹介→計算→論理演算のための演算子

https://nadesi.com/doc/reference/syntax/1-7-calc.htm#head4

 さらっと「比較式Aがまたは比較式Bがならば(=1)を返し、違えば(=0)を返します。」なんて言われてもね。

 なでしこは、初心者向けかと思いきや、マニュアルは「のくらいはフツー知ってるよね」くらいの感じでスルーされているので、ワタシのよーにプログラムの基本のキの字も知らない人は、こんな些細なことで、いちいちまごまごしてしまう><


機能→機能/論理演算→あなたは論理演算がわかりますか?(ITPro)

http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20020731/1/

 むむむぅ、こんなのが5分で分かる人の頭脳が、むしろ信じられんね(´д`;


 さて、5時くらいかけて(嘘)、なんとなく理解したところによると・・・

 とりあえず、まず第一にこの計算は、二進数によってとりおこなわれるってことです。コンピューターなんで!

 して、日本語の「または」にとらわれすぎると、なんだかよく分かんなくなる。

 ようするに、どれかいっこでも1だったら、1

 逆に言うと、ぜんぶ0だった場合だけ、0

 でっ・・・

 「1 OR 4」を、二進数にすると

    0000 0001
OR  0000 0100
-------------
    0000 0101

 8ビットにすれとかなんとか書いてたから、いちおうのように。

 答えは5で、一見足し算の結果と同じみたいだけど、足し算と違うのは、「1 OR 1=1」だってこと。

 「1+4+1」の答えは6ですが、「1 OROR 1」の答えは、5です。

    0000 0001
    0000 0100
OR  0000 0001
-------------
    0000 0101

 この効用は、アレですかねー。

 もし違えて、フラグを「WS_CHILD||WS_VISIBLE||WS_CHILD」みたいに重複して設定してしまっても無視されて、あらぬ値が設定されて大変大変!とゆう事件にならない的な?

 いやたぶん、もっと他にも深遠な意味があるんだろうけど。


 ああぁ、AnimateWindowのアニメーションの種類なんかも、みんなそうだったんだ・・・

 時ある時、コソッと直;;;


 明日になったら、またなんだかよく分からなくなってるかもしないので(えっ;)、このように書き残しておく。

 してまた、もしかしてもしかしたら、おんなじようにまごまごする人がいないとも限らないので、恥も外聞も無く、発表しておく><

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20170331