| 4D v18WP SET LINK | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 WP SET LINK 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| WP SET LINK ( targetObj ; linkObj ) | ||||||||
| 引数 | 型 | 説明 | ||||||
| targetObj | Object |   | レンジまたは要素または4D Write Pro ドキュメント | |||||
| linkObj | Object |   | ハイパーリンクの値 | |||||
WP SET LINK はtargetObj 引数で指定したターゲットオブジェクトに、ハイパーリンク参照を割り当てます。URL、4Dメソッド、そしてブックマークへのリンクがサポートされます。リンクは、ユーザーがそれをクリック(あるいはURLを開くのにテキストが編集可能な場合、Windows ではCtrl+クリック、macOS ではCmd+クリック)をすることでアクションがトリガーされます。
targetObj 引数には、リンクを適用したい4D Write Pro オブジェクトを渡します。以下のものを渡すことができます:
例えばヘッダーを渡した場合、ヘッダーのコンテンツ全体がハイパーリンクとして表示されます。ドキュメントにリンクを挿入する場合、4D Write Pro は以下のルールに基づいてリンクを適用します:
linkObj 引数には、ハイパーリンクの詳細を格納したオブジェクトを渡します。以下のプロパティのどれか一つだけを格納している必要があります(ただしparameter プロパティはmethod プロパティと同時に併用することが可能です):
| プロパティ | 型 | 詳細 | ハイパーリンクアクション | ||||||||||||||||||||||||
| url | テキスト | URL型ハイパーリンクのリンク先(エンコードされたURL)。 | 
 | ||||||||||||||||||||||||
| bookmark | テキスト | ブックマーク名 | カレントフォキュメント内の指定されたブックマークにアクセスします(ブックマークコマンド参照) | ||||||||||||||||||||||||
| method | テキスト | プロジェクトメソッド名 - メソッドは存在しかつSET ALLOWED METHODS コマンドで許可されている必要があります。 | クリックされると4Dメソッドを実行します。メソッドは自動的に二つの引数を$1と$2に受け取ります: 
 | ||||||||||||||||||||||||
| parameter | テキスト | 数値 | method 型のリンクでのみ使用可能、メソッドが引数を必要としない場合には必須ではありません。メソッドに送るための追加の引数を格納しています。 | メソッド内の$2.parameter に受け取られます | 
注:
ウェブサイトへのリンクを、ドキュメントのフッターエリアに追加したい場合を考えます:
 C_OBJECT($footer)
 $footer:=WP Get footer(WPArea;1)
 WP SET TEXT($footer;"Please visit our website";wk replace)
 WP SET LINK($footer;New object("url";"http://www.4d.com"))ドキュメント内での全てのブックマークを使用して、リンクつきの目次ページを作成したい場合を考えます:
 C_LONGINT($i;$n;$p;$memoStart)
 C_OBJECT($range;$link;$toc;$tocRange;$positionInfo;$target)
 C_TEXT($text)
 
 ARRAY TEXT($_bookmarks;0)
 WP GET BOOKMARKS(WParea1;$_bookmarks) //全てのブックマークを検索
 
 $n:=Size of array($_bookmarks)
 If($n>0)
    $tocRange:=WP Text range(WParea1;wk start text;wk start text) //テキストの開始位置を探す
    WP INSERT BREAK($tocRange;wk page break;wk append;wk exclude from range) //テキストの前に改ページを追加
 
    For($i;1;$n) // 目次とリンクを挿入
       $range:=WP Bookmark range(WParea1;$_bookmarks{$i})
       $positionInfo:=WP Get position($range)
       $memoStart:=$tocRange.end
       WP SET TEXT($tocRange;Char(Tab)+$_bookmarks{$i}+Char(Tab)+String($positionInfo.page);wk append;wk include in range)
 
       $target:=WP Text range($tocRange;$memoStart+1;$memoStart+1+Length($_bookmarks{$i}))
       $link:=New object("bookmark";$_bookmarks{$i})
       WP SET LINK($target;$link)
       WP INSERT BREAK($tocRange;wk line break;wk append;wk include in range)
    End for
 End ifドキュメントの"4D"という文字列にそれぞれ4Dメソッドへのリンクを設定したい場合を考えます:
 C_TEXT($text,$find)
 C_LONGINT($p)
 C_OBJECT($range;$link)
 
 $text:=WP Get text(wpArea;wk expressions as value) //ドキュメント内の全てのテキストを取得
 
 $find:="4D" //リンクをつけるターゲット
 
 $p:=Position($find;$text) //ターゲットの出現箇所を全て探すためにテキスト内をループ
 If($p>0)
    $range:=WP Text range(wpArea;$p;$p+Length($find)) //ターゲットの長さを設定
  //create the link object
    $link:=New object("method";"myAlert";"parameter";"4D rocks!") //SET ALLOWED METHODS でメソッドを許可することをお忘れなく
 
    WP SET LINK($range;$link)
 End if
	プロダクト: 4D
	テーマ: 4D Write Proランゲージ
	番号: 
        1642
        
        
        
	
	初出: 4D v17 R5
	
	
	4D Write Proリファレンス ( 4D v18)
	
	
	
 コメントを追加
コメントを追加