macro server の dialog 機能の利用方法No.01028
ひろ さん 00/02/18 16:10
 
 皆さん今日は、ひろです。
 こちらの会議室が妥当がどうか解りませんが、「秀まるおのマクロサーバ」
を用いて、以下のような sample を作成しました。
//------------------------- sample bigin --------------------------------
main:
  #hwnd=hidemaruhandle(0);
  call radiosample;
  message $$return;
  setactivehidemaru(#hwnd);
  endmacro;

radiosample:
  ddeinitiate "HideMacroServer","DlgService";
  if(!result){
    run "E:\\Program Files\\Macserv\\MACSERV.EXE";
    ddeinitiate "HideMacroServer","DlgService";
  }ddepoke "newdialog","15,sample";
  ddepoke "newcontrol","radio,radio,item list";
  ddepoke "item","&1";
  ddepoke "item","&2";
  ddepoke "item","&3";
  ddepoke "item","&4";
  ddepoke "item","&5";
  ddepoke "default","5";
  ddepoke "newcontrol","okcancel";
  ddeexecute "dialog "+str(#hwnd);
  $$okcansel="";
  ddestartadvice "dlgresult", $$okcansel;
  while(strlen($$okcansel)==0){
    ddewaitadvice $$okcansel,100;
  }ddestopadvice "dlgresult";
  ddeexecute "enddialog";
  if($$okcansel=="0")return "cansel";
  else{
    $$radio=dderequest("getstate radio");
    return $$radio;
  }
//----------------------- sample end -------------------------------
 この macro を実行すると、3 つ目までの item は期待どうりの値が帰って
くるのですが、4 つ目以降は「"0"」が帰ってきてしまいます。何か使い方が
拙いのでしょうか?
 使用しているのは Windows98+秀丸 Ver.3.05+秀まるおのマクロサーバ
Ver.1.3 です。

[ ]
RE:01028 macro server の dialog 機能のNo.01041
ひろ さん 00/02/21 11:08
 
 今日は、ひろです。自己レスです。
>  こちらの会議室が妥当がどうか解りませんが、「秀まるおのマクロサーバ」
> を用いて、以下のような sample を作成しました。
 レスが付かない(;_;)。皆さんの環境では再現しないなど、情報だけでも頂
けると非常に有り難いです。

[ ]
RE:01041 macro server の dialog 機能のNo.01042
ENCODINGSHIFTJIS さん 00/02/21 11:24
 
> レスが付かない(;_;)。皆さんの環境では再現しないなど、情報だけでも頂
>けると非常に有り難いです。

&1 ... の機能はありませんが 田楽サーバーに流したら正常でした。

[ ]
RE:01041 macro serverのNo.01043
かかし さん 00/02/21 11:50
 
かかしです、こんにちは。

> 今日は、ひろです。自己レスです。

こんにちは。

>>  こちらの会議室が妥当がどうか解りませんが、「秀まるおのマクロサーバ」
>> を用いて、以下のような sample を作成しました。
> レスが付かない(;_;)。皆さんの環境では再現しないなど、情報だけでも頂
>けると非常に有り難いです。

再現しました。
・・・原因が分かりません。
マクロサーバを持ってきたときについてきたサンプルプログラムでも
試してみたのですが3番目以降0しか返ってきません。

どうなんでしょう?
う〜ん。

run "macserv.exe";
ddeinitiate "HideMacroServer", "DlgService";
if( !result ) {
message "ddeinitiate failed";
endmacro;
}

//***** ラジオボタンのテスト *****
ddepoke "newdialog", "40,ラジオボタンのテスト";
ddepoke "newcontrol", "radio,MyRadio,グループ";
ddepoke "item", "ラジオボタン1";
ddepoke "item", "ラジオボタン2";
ddepoke "item", "ラジオボタン3";
ddepoke "item", "ラジオボタン4";
ddepoke "item", "ラジオボタン5";
ddepoke "item", "ラジオボタン6";
ddepoke "item", "ラジオボタン7";
ddepoke "item", "ラジオボタン8";
ddepoke "item", "ラジオボタン9";
ddepoke "item", "ラジオボタン10";
ddepoke "item", "ラジオボタン11";
ddepoke "item", "ラジオボタン12";
ddepoke "newcontrol", "okcancel";

call MakeDialog;
message dderequest("getstate MyRadio") + " 番目のボタンが選ばれました";

endmacro;

MakeDialog:
#hwnd = hidemaruhandle(0);
ddeexecute "dialog " + str(#hwnd);
$$a = "";
ddestartadvice "dlgresult", $$a;
while( strlen($$a) == 0 ) {
ddewaitadvice $$a, 100;
}
ddestopadvice "dlgresult";
ddeexecute "enddialog";

if($$a == "0"){
message "処理を中止しました。";
endmacro;
}

return $$a;



---かかし

[ ]
RE:01043 macro serverのNo.01048
ひろ さん 00/02/21 19:03
 
 ENCODINGSHIFTJIS、かかしさん今日は、ひろです。
> 再現しました。
> ・・・原因が分かりません。
 やはりそうですか? 後は開発者の肩に聞かないと解りませんね。
ENCODINGSHIFTJIS さんの仰るように「田楽サーバ」では問題ないので、「秀
まるおのマクロサーバ」の問題なのでしょうか。

 暫く待って開発者の方からレスが付かなければ、MES5 に移動します。

[ ]
RE:01048 macro serverのNo.01051
秀丸担当 さん 00/02/22 15:33
 
>やはりそうですか? 後は開発者の肩に聞かないと解りませんね。
>ENCODINGSHIFTJIS さんの仰るように「田楽サーバ」では問題ないので、「秀
>まるおのマクロサーバ」の問題なのでしょうか。

どうもです。
調べてみたのですが、マクロサーバの問題でした。
ラジオボタンのカウントが全体のコントロール数までしかカウント
していませんでした。
直しておきます。


[ ]
RE:01051 macro serverのNo.01053
ひろ さん 00/02/22 19:05
 
 秀丸担当さん今日は、ひろです。
> 調べてみたのですが、マクロサーバの問題でした。
> ラジオボタンのカウントが全体のコントロール数までしかカウント
 調査していただき有り難うございました。次の version での bug fix を
待っています。

[ ]
RE:01051 macro serverのNo.01056
EXZS さん 00/02/23 23:22
 

 便乗なのですが、

 今のマクロサーバーって、ファイルサービスにてディレクトリを
 指定した場合、そのディレクトリが削除された場合、
 どのようになります?

 いえ、マクロサーバーを起動しっぱなしの場合には、ダイアログサービス
 に移ろうと、別のディレクトリに移ろうとしても、ファイル一覧が
 読めなくなってるようなんですけど・・・
 

>>やはりそうですか? 後は開発者の肩に聞かないと解りませんね。
>>ENCODINGSHIFTJIS さんの仰るように「田楽サーバ」では問題ないので、「秀
>>まるおのマクロサーバ」の問題なのでしょうか。
>
>どうもです。
>調べてみたのですが、マクロサーバの問題でした。
>ラジオボタンのカウントが全体のコントロール数までしかカウント
>していませんでした。
>直しておきます。
>

[ ]
RE:01051 macro serverのNo.01075
ひろ さん 00/02/26 11:03
 
 秀丸担当さん今日は、ひろです。
> 調べてみたのですが、マクロサーバの問題でした。
> ラジオボタンのカウントが全体のコントロール数までしかカウント
> していませんでした。
> 直しておきます。
 Ver.1.4 での修正を確認いたしました。どうも有り難うございました。

[ ]