home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 October / VPR9710A.ISO / Ffilly / TFYW111 / RTW_WIN.MAC < prev    next >
Text File  |  1997-07-14  |  6KB  |  250 lines

  1. // ウィンドウ関連関数
  2. main:
  3.     menu
  4.         "&OpenWin\tウィンドウを開く",
  5.         "O&penWin...\tウィンドウを開く(詳細設定)",
  6.         "&MoveWin...\tウィンドウの設定を変更",
  7.         "&CloseWin\tウィンドウを閉じる",
  8.         "CloseWin&All\tすべてのウィンドウを閉じる",
  9.         "Cap&Titlet\tウィンドウのキャプションの文字を指定",
  10.         "&GetPicNo\tウィンドウに関連付けされたピクチャー番号を得る";
  11.     if(result == 0) goto macro_cancel;
  12.     else if(result == 1) call InsFunc "OpenWin",1;
  13.     else if(result == 2) goto OpenWinF;
  14.     else if(result == 3) goto MoveWin;
  15.     else if(result == 4) call InsFunc "CloseWin",1;
  16.     else if(result == 5) call InsFunc "CloseWinAll",0;
  17.     else if(result == 6) call InsFunc "CapTitle",2;
  18.     else if(result == 7) call InsFunc "GetPicNo",1;
  19.  
  20.  
  21. macro_end:
  22.     endmacro;
  23.  
  24.  
  25. macro_cancel:
  26.     writeininum "tfywrite.ini", "Control", "MenuCancel", 1;
  27.     endmacro;
  28.  
  29.  
  30. OpenWinF:
  31.     escape;
  32.     call MacSrvInit;
  33.  
  34.     ddepoke "newdialog", "41,OpenWin";
  35.  
  36.     ddepoke "newcontrol", "text,,ピクチャー番号(&P)";
  37.     ddepoke "part", "15";
  38.     ddepoke "newcontrol", "edit,Picture,";
  39.  
  40.     ddepoke "newcontrol", "text,,ウィンドウの位置";
  41.     ddepoke "part", "13";
  42.     ddepoke "newcontrol", "text,,X座標(&X)";
  43.     ddepoke "part", "8";
  44.     ddepoke "newcontrol", "edit,X,";
  45.     ddepoke "part", "6";
  46.     ddepoke "newcontrol", "text,,Y座標(&Y)";
  47.     ddepoke "part", "8";
  48.     ddepoke "newcontrol", "edit,Y,";
  49.  
  50.     ddepoke "newcontrol", "text,,サイズ";    
  51.     ddepoke "part", "13";
  52.     ddepoke "newcontrol", "text,,幅(&W)";
  53.     ddepoke "part", "8";
  54.     ddepoke "newcontrol", "edit,W,";
  55.     ddepoke "part", "6";
  56.     ddepoke "newcontrol", "text,,高さ(&H)";
  57.     ddepoke "part", "8";
  58.     ddepoke "newcontrol", "edit,H,";
  59.  
  60.     ddepoke "newcontrol", "text,,ピクチャーの左上";
  61.  
  62.     ddepoke "newcontrol", "text,, ";    
  63.     ddepoke "part", "13";
  64.     ddepoke "newcontrol", "text,,X座標(&R)";
  65.     ddepoke "part", "8";
  66.     ddepoke "newcontrol", "edit,PX,";
  67.     ddepoke "part", "6";
  68.     ddepoke "newcontrol", "text,,Y座標(&D)";
  69.     ddepoke "part", "8";
  70.     ddepoke "newcontrol", "edit,PY,";
  71.  
  72.     ddepoke "newcontrol", "text,,ピクチャーが無い位置の色(16進)(&C)";
  73.     ddepoke "part", "29";
  74.     ddepoke "newcontrol", "edit,Col,";
  75.  
  76.     ddepoke "newcontrol", "text,, ";    
  77.     ddepoke "part", "21";
  78.     ddepoke "newcontrol", "okcancel,Ok";
  79.  
  80.     call MakeDialog;
  81.  
  82.     $Ok = dderequest("getstring Ok");
  83.     if($Ok == "0") goto macro_end;
  84.  
  85.     $Picture = dderequest("getstring Picture");
  86.     $X       = dderequest("getstring X");
  87.     $Y       = dderequest("getstring Y");
  88.     $W       = dderequest("getstring W");
  89.     $H       = dderequest("getstring H");
  90.     $PX      = dderequest("getstring PX");
  91.     $PY      = dderequest("getstring PY");
  92.     $Col     = dderequest("getstring Col");
  93.  
  94.     $Cmd = "OpenWin(" +$Picture+ "," +$X+ "," +$Y+ "," +$W+ "," +$H+ "," +$PX+ "," +$PY+ "," +$Col+ ");";
  95.     insert $Cmd;
  96.  
  97.     goto macro_end;
  98.     ddeexecute "exit";
  99.  
  100.  
  101. MoveWin:
  102.     escape;
  103.     call MacSrvInit;
  104.  
  105.     ddepoke "newdialog", "41,MoveWin";
  106.  
  107.     ddepoke "newcontrol", "text,,ウィンドウ番号(&W)";
  108.     ddepoke "part", "13";
  109.     ddepoke "newcontrol", "edit,Win,";
  110.  
  111.     ddepoke "newcontrol", "text,,ピクチャー番号(&P)";
  112.     ddepoke "part", "13";
  113.     ddepoke "newcontrol", "edit,Picture,";
  114.  
  115.     ddepoke "newcontrol", "text,,ウィンドウの位置";
  116.     ddepoke "part", "13";
  117.     ddepoke "newcontrol", "text,,X座標(&X)";
  118.     ddepoke "part", "8";
  119.     ddepoke "newcontrol", "edit,X,";
  120.     ddepoke "part", "6";
  121.     ddepoke "newcontrol", "text,,Y座標(&Y)";
  122.     ddepoke "part", "8";
  123.     ddepoke "newcontrol", "edit,Y,";
  124.  
  125.     ddepoke "newcontrol", "text,,サイズ";
  126.     ddepoke "part", "13";
  127.     ddepoke "newcontrol", "text,,幅(&W)";
  128.     ddepoke "part", "8";
  129.     ddepoke "newcontrol", "edit,W,";
  130.     ddepoke "part", "6";
  131.     ddepoke "newcontrol", "text,,高さ(&H)";
  132.     ddepoke "part", "8";
  133.     ddepoke "newcontrol", "edit,H,";
  134.  
  135.     ddepoke "newcontrol", "text,,ピクチャーの左上";
  136.     ddepoke "part", "13";
  137.     ddepoke "newcontrol", "text,,X座標(&R)";
  138.     ddepoke "part", "8";
  139.     ddepoke "newcontrol", "edit,PX,";
  140.     ddepoke "part", "6";
  141.     ddepoke "newcontrol", "text,,Y座標(&D)";
  142.     ddepoke "part", "8";
  143.     ddepoke "newcontrol", "edit,PY,";
  144.  
  145.     ddepoke "newcontrol", "text,, ";    
  146.     ddepoke "part", "21";
  147.     ddepoke "newcontrol", "okcancel,Ok";
  148.  
  149.     call MakeDialog;
  150.  
  151.     $Ok = dderequest("getstring Ok");
  152.     if($Ok == "0") goto macro_end;
  153.  
  154.     $Win     = dderequest("getstring Win");
  155.     $Picture = dderequest("getstring Picture");
  156.     $X       = dderequest("getstring X");
  157.     $Y       = dderequest("getstring Y");
  158.     $W       = dderequest("getstring W");
  159.     $H       = dderequest("getstring H");
  160.     $PX      = dderequest("getstring PX");
  161.     $PY      = dderequest("getstring PY");
  162.  
  163.     $Cmd = "MoveWin(" +$Win+ "," +$Picture+ "," +$X+ "," +$Y+ "," +$W+ "," +$H+ "," +$PX+ "," +$PY+ ");";
  164.     insert $Cmd;
  165.  
  166.     goto macro_end;
  167.     ddeexecute "exit";
  168.  
  169.  
  170. //関数の挿入
  171. InsFunc:
  172.     //第1引数 str 関数名
  173.     //第2引数 str 関数の引数のタイプ
  174.     // (0=なし、1=数値型、2=文字列型、3=配列変数)
  175.  
  176.     if(##2 == 0){
  177.         escape;
  178.         insert $$1 + "();";
  179.         return;
  180.     }
  181.  
  182.     #Select = selecting;
  183.     $SText = "";
  184.  
  185.     if(#Select == 1){
  186.         #STopX = seltopx;
  187.         #STopY = seltopy;
  188.         #SEndX = selendx;
  189.         #SEndY = selendy;
  190.         $SText = gettext(#STopX,#STopY,#SEndX,#SEndY);
  191.         #SLength = strlen($SText);
  192.         moveto #STopX,#STopY;
  193.  
  194.         beginsel;
  195.         right #SLength;
  196.         delete;
  197.     }
  198.     
  199.     if(##2 == 1){
  200.         insertfix $$1 + "(" + $SText + ");";
  201.         if($SText == ""){
  202.             gowordend;
  203.             right;
  204.         }
  205.     }
  206.  
  207.     else if(##2 == 2){
  208.         insertfix $$1 + "(\"" + $SText + "\");";
  209.         if($SText == ""){
  210.             gowordend;
  211.             right 2;
  212.         }
  213.     }
  214.  
  215.     else if(##2 == 3){
  216.         if(rightstr($SText,2) != "[]") $SText = $SText + "[]";
  217.         insertfix $$1 + "(\"" + $SText + "\");";
  218.         if($SText == ""){
  219.             gowordend;
  220.             right;
  221.         }
  222.     }
  223.  
  224.     return;
  225.  
  226.  
  227. //ダイアログボックス関連サブルーチン
  228. MacSrvInit:
  229.     run "macserv.exe /h";
  230.     ddeinitiate "HideMacroServer", "DlgService";
  231.     if( !result ) {
  232.         message "ddeinitiate failed";
  233.         endmacro;
  234.     }
  235.     ddeexecute "setcurdir " + directory;
  236.     return;
  237.  
  238.  
  239. MakeDialog:
  240.     #hwnd = hidemaruhandle(0);
  241.     ddeexecute "dialog " + str(#hwnd);
  242.     $$a = "";
  243.     ddestartadvice "dlgresult", $$a;
  244.     while( strlen($$a) == 0 ) {
  245.         ddewaitadvice $$a, 100;
  246.     }
  247.     ddestopadvice "dlgresult";
  248.     ddeexecute "enddialog";
  249.     return $$a;
  250.