一括表示

お世話になります。
メニューの「環境設定」「設定2」の「QSOデータの共有オープン」に
レ点が付いているかどうかの確認はHelpに記載されている
「メインメニューには再読込み(R)が、ステータスバーには【共有】の文字が表示されます」とは別に
Hamlogw.ini の中の [Kankyo]の中の KSet の値を2進数に変換して
右から20桁目が 1 なら共有オープンされている..と言う
判断で良いでしょうか?
 

2017/03/02(Thu) 19:52:47  [No.721]


Re: QSOデータの共有オープン 投稿者:JG1MOU浜田 

> Hamlogw.ini の中の [Kankyo]の中の KSet の値を2進数に変換して
> 右から20桁目が 1 なら共有オープンされている..と言う
> 判断で良いでしょうか?

ビットシフトのループの中で判定してますので、何桁目なのかは即答
できませんけど、それでOKだと思います。

それから、HAMLOG50.DLLの、SetDbsShare(0)を呼び出してTRUEであれば
共有オープン中です。
HAMLOG本体ではこちらを使ってます。

2017/03/03(Fri) 20:56:59  [No.722]


Re: QSOデータの共有オープン 投稿者:JG1MOU浜田 

> それから、HAMLOG50.DLLの、SetDbsShare(0)を呼び出してTRUEであれば
> 共有オープン中です。
> HAMLOG本体ではこちらを使ってます。

よく考えてみたら、別のプロセスからDLL内の関数を呼び出すわけで
しょうから、意味はなかったですね。
[Kankyo]
KSet=nnn
・・・を使った方が良いかも。
nnnは、1を20ビット左シフトした値、すなわち&H80000とアンドが
とれれば共有、ということになるかと思います。

2017/03/03(Fri) 22:33:23  [No.723]


浜田さん、お世話になります。
詳しい説明をありがとうございました。

> [Kankyo]
> KSet=nnn
> ・・・を使った方が良いかも。

はい、この値で判断しようとしています。

自分の処では正常に判断出来るのですが、ある方からの KSet=nnn では
右から20桁目が1では無いので?  「KSet=637677885」だそうです。
メインウインドウには「再読み込み」が表示されているとの事なのですが。
私の Hamlogw.ini に 「KSet=637677885」を書いて起動すると「再読み込み」が表示されない。
改めて確認してもらった方が良いでしょうね。

私の場合は KSet=1651177788、これなら共有と判断出来ています。メインウインドウ上にも「再読み込み」が表示されている。

> nnnは、1を20ビット左シフトした値、すなわち&H80000とアンドが
> とれれば共有、ということになるかと思います。

そう言う手法が良いのでしょうが、今のところは単純に10進数を2進数に変換して右から20桁を取得し左端の文字で判定しています。
20桁に満たない事もあるので2進数にしてからゼロを20ケ左側に加えていますが。

2017/03/04(Sat) 06:55:51  [No.724]


Re: QSOデータの共有オープン 投稿者:JG1MOU浜田 

> > nnnは、1を20ビット左シフトした値、すなわち&H80000とアンドが
> > とれれば共有、ということになるかと思います。
>
> そう言う手法が良いのでしょうが、今のところは単純に10進数を2進数に変換して右から20桁を取得し左端の文字で判定しています。
> 20桁に満たない事もあるので2進数にしてからゼロを20ケ左側に加えていますが。

環境設定のチェックボックスのすべてチェックを外すと、KSet=0
共有オープンだけチェックを入れると、 KSet=524288
つまり、KSet=&H80000 です。これを使えば間違いありません。

if (nnn & 0x80000) // C言語
  共有中;

if LongBool(nnn and $80000) then // PASCAL言語
  共有中;

if (nnn And &H80000) > 0 then ; VisualBasicたぶんこんな感じ
  共有中;

2017/03/04(Sat) 08:19:20  [No.725]


Re: QSOデータの共有オープン 投稿者:JA2BQX 太田 

浜田さん、毎度お世話になります。
サンプルをありがとうございました。

> if (nnn And &H80000) > 0 then ; VisualBasicたぶんこんな感じ
>   共有中;

下記ですんなり出来ました。 MNI TNX

If (KSet_str And &H80000) > 0 Then
Kyoyu_flag = 0
Label7.Text = "共有オープンされています"
Label7.ForeColor = Color.Blue
Else
Kyoyu_flag = 0
Label7.Text = "共有オープンされていません"
Label7.ForeColor = Color.Red
End If

2017/03/04(Sat) 08:45:58  [No.726]