過去の桐井戸端BBS (桐ver.8)
10587 テキストオブジェクトで変数を表示したら「!」の文字が表示されない ジャニー垣添 2001/03/30-15:58
こんにちは皆さん。
今最もトレンドなイベント処理(やっと出来るようになった!)なんですが、
例えば「&コメント」というテキストオブジェクトを用意していて、
その中に「しゃーんなろ!」と表示させようとしますよね。
その時に「!」が表示されないんですよね。
これって変数宣言が必要な文字列なんでしょうか?
10589 Re:変数宣言にて 悲しげ 2001/03/30-17:15
記事番号10587へのコメント
どもっ、ジャニー垣添さん

>例えば「&コメント」というテキストオブジェクトを用意していて、
>その中に「しゃーんなろ!」と表示させようとしますよね。

う〜ん、質問の意図がわかりません。
頭に「&」が付く字句は桐の場合は変数を意味します。
ですから「&コメント」とはおそらくは「テキストオブジェクト」自体ではなくて、
そのオブジェクトの「ソース」ではないでしょうか?

>その時に「!」が表示されないんですよね。
>これって変数宣言が必要な文字列なんでしょうか?

「これって」の「これ」は何を指すのでしょう?

桐の場合、「!」が特別な用途を持つ文字であるとの話は、私は聞いたことがありません。
ですから、考えられることは、テキストオブジェクトの枠が足りなくて
たまたま「しゃーんなろ」までしか表示されないとか(^^;)、
あるいは、「!」を非表示強制改行文字に設定してあるとか、あるいは、あるいは……。(?_?)
10613 変数への代入 MIT 2001/03/31-12:21
記事番号10587へのコメント
ジャニー垣添さん
桐のバージョンがわかりませんので的確な回答は出来ませんし、悲しげさんのおっしゃるように意図される事が
私もよくわかっていませんが、例えばフォームのテキストオブジェクトに文字型変数に代入した文字を表示したい時
&文字=”表示したい文字”
オブジェクト操作・中略・@テキストオブジェクト.ソース=&文字
としているとします。正しく表示されない文字がある時、例えば¥など
&文字=”””¥”””
&文字=”””¥”
&文字=””””+”¥”
上記いずれでも表示されるようになると思います。
もし「KU1104:使用できない文字が使われています」
のエラー表示があるようでしたら上記の記述をお試し下さい。
以上ご参考までMIT

10664 Re:変数宣言にて ジャニー垣添 2001/04/03-13:33
記事番号10587へのコメント
うーん質問が上手く伝わらないようでした。すみません。
で、整理しました。

フォーム上でイベントを使用しています。
あるコマンドボタンにマウスインアウトを使用しており、そのコマンドボタンに触れると、
「しゃー、んなろ!」とセリフが出るようにしています。
イベント(kevファイル)には&コメント="しゃー、んなろ!"と記述しており、
フォーム上にはテキストボックスで「&コメント」で設定しています。
「しゃー、んなろ」までは表示されるのですが、「!」に関しては表示されません。
下部に、「KU1114 使用できない文字が使われています」と出ます。

尚、桐verは8sp6
変数宣言は「変数宣言 文字列{&STR1,&STR2,&STR3}」
と記述させています。

何かわかればアドバイスよろしくお願いします。
10665 Re:変数宣言にて Ogo 2001/04/03-13:59
記事番号10664へのコメント

>フォーム上でイベントを使用しています。
>あるコマンドボタンにマウスインアウトを使用しており、そのコマンドボタンに触れると、「し
>ゃー、んなろ!」とセリフが出るようにしています。
>イベント(kevファイル)には&コメント="しゃー、んなろ!"と記述しており、フォーム上には
>テキストボックスで「&コメント」で設定しています。
>「しゃー、んなろ」までは表示されるのですが、「!」に関しては表示されません。
>下部に、「KU1114 使用できない文字が使われています」と出ます。

組み込み変数の「&STR」を使うと、全く問題なく、!まで表示できますよ?
何かここに提示されている以外の要因を持ってませんか?

イベントファイルを、カット&ペーストしたのならともかく、書き写す過程で何か勝手に
取捨選択とか意訳とかしてませんか?


10666 Re:変数宣言にて ジャニー垣添 2001/04/03-15:32
記事番号10665へのコメント
>
>組み込み変数の「&STR」を使うと、全く問題なく、!まで表示できますよ?
>何かここに提示されている以外の要因を持ってませんか?
>
>イベントファイルを、カット&ペーストしたのならともかく、書き写す過程で
>何か勝手に取捨選択とか意訳とかしてませんか?
>
やはり同じエラーが出てしまいます。
kevファイルには次のように記述させてますが、どこかまずい所があるのでしょうか?

------------------------------------------------------------------------

名札 メイン
変数宣言 {&オブジェクト名}


手続き定義開始 履歴01::マウスインアウト( 長整数 &フラグ,長整数 &明細番号 )
&オブジェクト名 = "t説明"
 if ( &フラグ = 1 )
   オブジェクト操作 &オブジェクト名{ \
       画面表示=1,ソース="なぜですか?" }
 else
   オブジェクト操作 &オブジェクト名{ \
       画面表示=0,ソース="" }
 end
手続き定義終了
10667 Re:変数宣言にて bonito 2001/04/03-17:17
記事番号10666へのコメント
ジャニー垣添さん

Ogoさんの
>>何か勝手に取捨選択とか意訳とかしてませんか?
と、

ジャニー垣添さんの
>変数宣言は「変数宣言 文字列{&STR1,&STR2,&STR3}」
と、
> if ( &フラグ = 1 )
>   オブジェクト操作 &オブジェクト名{ \
>       画面表示=1,ソース="なぜですか?" }
と、
から考えるに...実は
オブジェクト操作 @テキスト{画面表示=1,ソース=&STR1}
のように記述していませんか?
過去ログ8331の私自身のコメントにもあるように
(であるのならば...ですが...)、これは

オブジェクト操作 @テキスト{画面表示="1",ソース="&STR1"}

と""をつけて記述すれば通るかも知れません。

10668 Re:変数宣言にて Ogo 2001/04/03-17:31
記事番号10667へのコメント

>オブジェクト操作 @テキスト{画面表示="1",ソース="&STR1"}
>
>と""をつけて記述すれば通るかも知れません。

いや、どうも桐の仕様(叉はバグ)臭いです。

で、私が試して正しく稼働したのは、以下のようなものだったのですが、
どうしても「オブジェクト操作」が必要なんでしょうか?

 代入 &標準偏差=&標準偏差+1
 ケース開始
  ケース (#MOD(&標準偏差,2)=1)
   代入 &STR="しゃー、んなろ!"
  ケース その他
   代入 &STR=""
 ケース終了
 ウィンドウ更新 -1

# もちろん、テキストオブジェクトのソースには &STR と入れてある。


10669 Re:変数宣言にて ジャニー垣添 2001/04/03-17:40
記事番号10667へのコメント
bonitoさんは No.10667「Re:変数宣言にて」で書きました。

>と、
>から考えるに...実は
>オブジェクト操作 @テキスト{画面表示=1,ソース=&STR1}
>のように記述していませんか?
>過去ログ8331の私自身のコメントにもあるように
>(であるのならば...ですが...)、これは
>
>オブジェクト操作 @テキスト{画面表示="1",ソース="&STR1"}
>
>と""をつけて記述すれば通るかも知れません。
>

「&STR」を「"&STR"」と記述を変更すれば表示できました。
まさかこんな基本的なところで引っかかるとは。思いつきもしませんでした!
ありがとうございます!!

10670 Re:変数宣言にて Ogo 2001/04/03-17:51
記事番号10669へのコメント

>「&STR」を「"&STR"」と記述を変更すれば表示できました。
>まさかこんな基本的なところで引っかかるとは。思いつきもしませんでした!
>ありがとうございます!!

先ほど提示した kev の中には &STR という文字列なんかなかったですよ?

どうして、質問をするのに(しかも、わざわざそこを強調して訊ねられているのに)正しい情報を提供しないのですか?

10671 Re:変数宣言にて ジャニー垣添 2001/04/03-18:20
記事番号10670へのコメント

>>「&STR」を「"&STR"」と記述を変更すれば表示できました。
>>まさかこんな基本的なところで引っかかるとは。思いつきもしませんでした!
>>ありがとうございます!!
>
>先ほど提示した kev の中には &STR という文字列なんかなかった
>ですよ?
>
>どうして、質問をするのに(しかも、わざわざそこを強調して訊ね
>られているのに)正しい情報を提供しないのですか?
>
ogoさんは、一番最初の方法に対して御返事をくれたんです。
それで表記が出来るようになりました。

しかし、その次に書いた方法ではまだ未解決です。
現在方法を検討中。(もしくは記述自体が間違っている可能性あり。)
10674 Re:変数宣言にて いかすぱげてぃ 2001/04/03-21:35
記事番号10668へのコメント
突然ですが、Ogoさんに一票。

ラベルオブジェクトならまだしも、テキストオブジェクトの表示文字列を変えたいのならば、
やはり入れ物ではなく中身を代えるのがよろしいかと…
オブジェクト操作だと要するに中身(値)ではなく入れ物を代えるので…
馴れないうちにそこに変数なんぞを使うと余計に混乱してしまいます。
まぁケースバイケースで、そういう必要が生じるときもありますけど、
お話のマウスインアウトイベントにはちと不向きな気がします。

結論1:ラベルオブジェクトを使いましょう。(^^)

ちなみにラベルオブジェクトなら&STRでも通ります。
ということは悩まないで済みます。(^^;

悲しげ様が「!」は特に意味無し…というようなことを書かれておりましたが、
残念ながら、こいつは桐の予約文字でございます。
桐のルールとして文字列定数の指定は通常、原則的に二重引用符で囲みますが、
<予約文字、数字以外の文字、引用符以外の文字>で定数が構成される場合は
二重引用符がなくても大丈夫なわけです。(分かりズらい(^^;
ちなみにキーボード上にある大抵の記号は予約文字であります。
       
結論2:オブジェクト操作は二重引用符を常につけましょう。

オブジェクト操作 @テキスト{画面表示="1",ソース="&STR1"}

でももちろん通るのですが、混乱を招きかねない指定でもあります。
ソースとして変数&STRを設定するのか、はたまた、
ソースとして変数&STRの中身である文字列「なんたらこうたら」を指定したいのか…

結果は同じですが、ご質問の趣旨的には


オブジェクト操作 @テキスト{画面表示="1",ソース=""""+&STR1+""""}
とするのが、通っぽいです。(^^;
例えば、フォーム開始イベントあたりで上記式を設定して、あとは変数値を
代えてやるなどという時に使う方が、かっこいいです。(^^;

というわけで、突然えらそうに(汗)、すみませんでした。

いかすぱげてぃ

10676 Re:変数宣言にて いかすぱげてぃ 2001/04/03-23:08
記事番号10674へのコメント
ごめんなんしょ。

>オブジェクト操作 @テキスト{画面表示="1",ソース=""""+&STR1+""""}
>とするのが、通っぽいです。(^^;
>例えば、フォーム開始イベントあたりで上記式を設定して、あとは変数値を
>代えてやるなどという時に使う方が、かっこいいです。(^^;

ちなみに上記式…ってのは @テキスト{画面表示="1",ソース="&STR1"} を指します。
今、ふと読み返してみて、ちと文脈不明にて…失敬、失敬。

では、おやすみなさい。

ばい いかすぱげてぃ

10677 Re:余談? bonito 2001/04/04-01:06
記事番号10676へのコメント
じゃ〜ん! いか師登場!

>オブジェクト操作だと要するに中身(値)ではなく入れ物を代えるので…

>オブジェクト操作 @テキスト{画面表示="1",ソース="&STR1"}
>でももちろん通るのですが、混乱を招きかねない指定でもあります。
>ソースとして変数&STRを設定するのか、はたまた、
>ソースとして変数&STRの中身である文字列「なんたらこうたら」を指定
>したいのか…

な〜る...、目からウロコ、身からサビ...(なんのこっちゃ)
短絡的な思考から、回りくどく際どい方法をとっていたのか (>自分)

>オブジェクト操作 @テキスト{画面表示="1",ソース=""""+&STR1+""""}
>とするのが、通っぽいです。(^^;
これは通でない私には解説が必要です (^^;
いつかどこかで何かに書いて下さい。

最近アドプレス(?)からいろいろ出ていますが(桐本)、それはそれで裾野を広げるには有効なんでしょうが、
もうちょっと毛色の違うのが欲しいわたし..。

何はともあれ、ここにコメントするのは誰かの為でなく、結局自分の益なんだと、改めて思う今日このごろ...(字足らず)

10681 Re:余談? いかすぱげてぃ 2001/04/04-11:07
記事番号10677へのコメント
bonitoさん、こんにちわ。

>>オブジェクト操作 @テキスト{画面表示="1",ソース=""""+&STR1+""""}
>>とするのが、通っぽいです。(^^;
>これは通でない私には解説が必要です (^^;
>いつかどこかで何かに書いて下さい。

いつか、どこかだと忘れてしまうので(苦わらひ)今、書きます。

では、まずソースに次の3つを指定する場合を考えてください。

 1:ソースに定数の文字列としての「&STR」を設定
●2:ソースに変数「&STR」に代入されている値を設定
 3:ソースに定数文字列としての「”&STR”」を設定(おまけ)

答えは

 1:ソース="&STR1"}
●2:ソース=""""+&STR1+""""}
 3:ソース="""&STR1"""}

のようになるかと思います。
要するに
1では変数「&STR」が文字列として設定され、設定後、その変数値が評価されるのに対して、
2ではオブジェクト操作コマンドが実行された時点で変数&STRは評価され、
その代入値が直接定数としてセットされるわけです。

ユーザーの見える結果、またその動作や速度にはまったく無影響のものですが、
理屈的には大幅に違うわけです。(わかりますよね)
ということです。

>最近アドプレス(?)からいろいろ出ていますが(桐本)、それはそれで裾野を
>広げるには有効なんでしょうが、もうちょっと毛色の違うのが欲しいわたし..。

私は駄目です。すでに昔人であります。是非、ご自分で書いてください。(^^;

…と無げに冷たいことを言うのもなんですので…
現在、非常に入り組んだ訳がありまして、久々にイベント組んでます。
いつになるか分かりませんが、出来たらご進呈いたします。

久しぶりの書き込みにレスをもらってはしゃぐ いかすぱげてぃ(だはは・・・)

戻る