2017-08-18 19 views
3

のウィンドウに使用し、別のTrace32に関する質問をします。 1週間前、私は、私の会社が1つの中央の場所から使用するコマンドを実行できる新しいスクリプトを書いた。私は(すべてのファイルの場所は、ワークスペースのルートに対して相対的であるので)私はで働いていますどのようなワークスペース覚えているとき、それは私が今日実現し、次のコードを持っている素晴らしい作品:Trace32はTEXTまたはHEADERのマクロを

PRINT "Workspace is &WORKSPACE" 
; Select the action we want to perform. 
DIALOG 
(
    HEADER "Select A Task To Run" 
    ; Large menu below 

私はすでに以上のデバッグコンソールをチェックするのを忘れていますかつて私は仕事場を変更するのを忘れたときに頭を傷つけていました。私は次のようなことをしたい:

; Select the action we want to perform. 
DIALOG 
(
    HEADER &WORKSPACE 

しかし、これはコンパイルされません。私に実際のファイルの場所(C:\Files\Whatever\)を与えるのではなく、タイトルが "&WORKSPACE"と表示されるので、HEADER "&WORKSPACE"を試しても動作しません。マクロや変数を使用してウィンドウタイトルをカスタム文字列に設定する方法はありますか?私は解決策を見つけることができないようです。ありがとう!

答えて

3

これは素晴らしいものです!良いニュース:解決策があります。

事実、PRACTICEスクリプトのマクロ置換は、実際のP​​RACTICEコードのどこでも動作します。しかし、ダイアログの説明は練習コードではありません。ダイアログの説明はスクリプト内に埋め込まれています。これは、HTMLファイルに(例えば、データURIを介して)画像を埋め込むようなものである。イメージはHTMLでもありません。

カスタムダイアログを表示するコマンドはDIALOG.view <dlg-file>です。しかし、DIALOG.viewは、埋め込まれたブロック(丸いカッコで、別々の行にあります)とともに使用することもできます。それはあなたがすることです。

そしてここにはトリックが来る:あなたは(&+すべての単語を練習マクロに置き換えられ、全体埋め込まれたブロック内&で始まるオープニングブレースを交換する場合 - 限り、その名前のマクロが存在するとして。

は、だからここにあなたが行く:

PRINT "Workspace is &WORKSPACE" 
DIALOG 
(&+ 
    HEADER "&WORKSPACE" 
    ; Large menu here... 
) 

はマクロ置換はその後、DIALOGブロックでどこでも本当に表示されていることに注意してください。これは、特にDIALOGにPRACTICEコードが埋め込まれている場合に、望ましくない副作用を引き起こす可能性があります。例えば:あなたは今ダイアログ・ブロックのためのマクロ置換を有効にした場合

DIALOG 
(
    BUTTON "Push me" 
    (
     PRIVATE &myfile 
     DIALOG.File.open *.txt 
     ENTRY %LINE &myfile 
     PRINT "You picked file '&myfile'" 
    ) 
) 

それはまた、あなたが望むものではありません通常PRIVATEとENTRYコマンドの& myfileのを、置き換えます。 。あなたが明示的にDIALOGに埋め込まPRACTICEスクリプトにダウンマクロ置換を無効にした場合、それが動作するはずしかし

「(& - 」だから、あなたが得る:

DIALOG 
(&+ 
    HEADER "&WORKSPACE"   
    BUTTON "Push me" 
    (&- 
     PRIVATE &myfile 
     DIALOG.File.open *.txt 
     ENTRY %LINE &myfile 
     PRINT "You picked file '&myfile'" 
    ) 
) 

その他の問題を回避するには、マクロ&を定義することですあなたが実践マスターに接近しているこの事をマスターした場合

LOCAL &WORKSPACE &myfile 
&WORKSPACE="Select A Task To Run" 
&myfile="&"+"myfile" // <- This is the trick! 
DIALOG 
(&+ 
    HEADER "&WORKSPACE"   
    BUTTON "Push me" 
    (
     PRIVATE &myfile 
     DIALOG.File.open *.txt 
     ENTRY %LINE &myfile 
     PRINT "You picked file '&myfile'" 
    ) 
) 

:実際には、テキスト「& MYFILE」が含まれていmyfileを!ここで


カスタムダイアログのテキストとヘッダの両方をカスタマイズするための別のより簡単な解決策は以下のとおりです。

  • はDIALOGコマンドの前にWinPOSコマンドでDIALOGの説明内のHEADERステートメントを交換してください。

例えばDYNTEXTと対話記述内のテキスト文を交換し、DIALOG.Setと対話記述外部テキストを設定:

PRIVATE &myheader &mytext 
&myheader="Select A Task To Run" 
&mytext="zaphod beeblebrox is an awesome frood" 
WinPOS ,,,,,,,"&myheader" 
DIALOG 
(
POS 0 0 30. 1 
DlgText1: DYNTEXT ""    
) 
DIALOG.Set DlgText1 "&mytext" 

この第2のアプローチは、単にDIALOG内部マクロ置換を回避します説明。したがって、質問に対する正確な答えではありませんが、実際の問題に対するより良い解決策かもしれません。

関連する問題