| 4D v18CONVERT COORDINATES | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 CONVERT COORDINATES 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| CONVERT COORDINATES ( xCoord ; yCoord ; from ; to ) | ||||||||
| 引数 | 型 | 説明 | ||||||
| xCoord | 倍長整数変数 |   | 点の水平方向の座標(変換前) | |||||
|   | 点の水平方向の座標(変換後) | |||||||
| yCoord | 倍長整数変数 |   | 点の垂直方向の座標(変換前) | |||||
|   | 点の垂直方向の座標(変換後) | |||||||
| from | 倍長整数 |   | 変換前の座標系 | |||||
| to | 倍長整数 |   | 変換後の座標系 | |||||
CONVERT COORDINATESコマンドは、ある点の(x;y)座標を一つの座標系から別の座標系へと変換します。サポートされる入力・出力座標系はフォーム(およびサブフォーム)、ウィンド、そしてスクリーンです。例えば、このコマンドを使用して、メインフォーム内にある、サブフォームに属しているオブジェクトの座標を取得する事ができます。これにより、どんなカスタムオプションに対してもコンテキストメニューを作成する事が容易になります。
xCoordとyCoord引数には、変換したい(x;y)座標を変数として渡します。コマンド実行後、これらの変数には返還後の値が渡されます。
from引数には、入力の点が使用している元の座標系を渡します。そしてto引数には、変換後の座標系を渡します。どちらの引数も、"Windows"テーマに追加された以下の定数値からどれか一つを使用する事ができます。
| 定数 | 型 | 値 | コメント | 
| XY Current form | 倍長整数 | 1 | 原点はカレントフォームの左上端 | 
| XY Current window | 倍長整数 | 2 | 原点はカレントウィンドウの左上端 | 
| XY Main window | 倍長整数 | 4 | Windows:原点はメインウィンドウの左上端 OS X:XY Screenと同じ | 
| XY Screen | 倍長整数 | 3 | 原点はメインスクリーンの左上端(SCREEN COORDINATESコマンドと同じ) | 
このコマンドがサブフォームまたはサブフォームのオブジェクトから呼び出され、セレクターのどれか一つがXY Current formであった場合、座標系はサブフォーム自身に対して相対的であり、親フォームに対して相対的ではありません。
フォームウィンドウの位置を変換、または位置へ変換する場合(例えばGET WINDOW RECTの結果を変換する場合、またはOpen form windowに渡された値へ変換する場合)、この座標系はWindowsマシンのウィンドウコマンドで使用されているものであるため、XY Main windowを使用する必要があります。これはOS Xにおいてもこの目的で使用する事ができ、その場合はXY Screenと同等になります。
from 引数がXY Current formであり、点がリストフォームのボディセクション内にある場合、コマンドの実行コンテキストによって結果が変化します:
"MyObject"というオブジェクト内の左下端にポップアップメニューを開きたい場合を考えます。
  // OBJECT GET COORDINATES はカレントフォーム座標系に対して働きます
  // ダイナミックポップアップメニューはカレントウィンドウ座標系を使用します
  // そのためこの値を変換する必要があります
 C_LONGINT($left;$top;$right;$bottom)
 C_TEXT($menu)
 OBJECT GET COORDINATES(*;"MyObject";$left;$top;$right;$bottom)
 CONVERT COORDINATES($left;$bottom;XY Current form;XY Current window)
 $menu:=Create menu
 APPEND MENU ITEM($menu;"Right here")
 APPEND MENU ITEM($menu;"Right now")
 Dynamic pop up menu($menu;"";$left;$bottom)
 RELEASE MENU($menu)
マウスカーソルの位置にポップアップウィンドウを開きたい場合を考えます。Windowsにおいては、GET MOUSEコマンド(* 引数を使用)はMDIウィンドウの位置に基づいた値を返すため、座標系を変換する必要があります:
 C_LONGINT($mouseX;$mouseY;$mouseButtons)
 C_LONGINT($window)
 GET MOUSE($mouseX;$mouseY;$mouseButtons)
 CONVERT COORDINATES($mouseX;$mouseY;XY Current window;XY Main window)
 $window:=Open form window("PopupWindowForm";Pop up form window;$mouseX;$mouseY)
 DIALOG("PopupWindowForm")
 CLOSE WINDOW($window)
									GET WINDOW RECT
									
									OBJECT GET COORDINATES
									
									OBJECT SET COORDINATES
									
									SET WINDOW RECT
									
	プロダクト: 4D
	テーマ: ウィンドウ
	番号: 
        1365
        
        
        
	
	初出: 4D v15 R3
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	ランゲージリファレンス ( 4D v18)
	
	
	
	
	
 コメントを追加
コメントを追加