過去の桐井戸端BBS (桐ver.9)
26365 テキストオブジェクトに入力された値を即変数として取得させたい 手塚 修 2004/05/19-11:49
カード型フォーム(編集対照表なし)にテキストオブジェクト1
(オブジェクト名 指定年 ソース &指定年)とオブジェクト2
(オブジェクト名 指定月 ソース &指定月)、コマンドボタン(印刷実行)
を配置しています。年月を指定し、絞込みの上、表の印刷をしようとしています。

二つのオブジェクトには、入力支援ボタンをつけ、クリックで16年を選び、
次の「指定月」で5月をクリックしているのですが、局所変数&指定月が5月になりません。
テキストオブジェクトには5月と表示されています。
このまま印刷実行をクリックしますとデータがなく印刷が行われません。
「指定年」に戻ってクリックすると変数に5月と表示され、
印刷も行われますが、これでは使いものになりません。

取得した値が即変数に跳ね返らせるにはどのようにしたら良いでしょうか?
教えてください。

トグルボタンでのように即変数に表示される、変更した値も即変数に
代入される。このように出来ればなと思っています。

よろしくお願いいたします。

26367 Re:テキストオブジェクトに入力された値を即変数として取得させたいが? ONnoji 2004/05/19-12:11
手塚 修さん、こんにちは。

テキストボックスにキャレットがある時は、エディタの中にいることになります。

このときにはソースを直接編集しているわけではありませんので、
ソースの値は変更されていません。

[編集文字列変更]イベントと、
[編集文字列取得]メソッドを利用すれば出来ると思います。

外していたら、すいません。

*---------------------------------*
名札 メイン
 変数宣言 局所,文字列{ &string }

 *

手続き定義開始 テキスト_1::編集文字列変更( )
 変数宣言 自動,整数{ &return }

 メソッド呼び出し 戻り値 = &return,&this.編集文字列取得( &string )

手続き定義終了
*---------------------------------*


26368 Re:変数が数値の場合には ONnoji 2004/05/19-12:21
記事番号26367へのコメント
テキストボックスのソースで指定した変数は数値系かもしれませんね。
この場合には[編集文字列取得]取得した文字列を、
#数値( )関数で変換する必要がありますね。

外していたら、すいません。

*---------------------------------*
名札 メイン
 変数宣言 局所,数値{ &m月 }



手続き定義開始 テキスト_1::編集文字列変更( )
 変数宣言 局所,文字列{ &string }
 変数宣言 自動,整数{ &return }

 メソッド呼び出し 戻り値 = &return,&this.編集文字列取得( &string )

&m月 = #数値( &string )

手続き定義終了
*---------------------------------*


26369 Re:キャレット ONnoji 2004/05/19-13:10
記事番号26368へのコメント
>テキストボックスにキャレットがある時は、エディタの中にいることになります。

蛇足です。

[ キャレット ]

caret

文字入力ポインタ。
DOSなどでは、文字の入力位置を示すポインタ
(たいていは1文字分の長方形の領域が点滅したり、
アンダースコアが点滅していたりする)をカーソルと呼んでいたが、

WindowsのGUIでは、マウスポインタをカーソルと呼び、
文字入力ポインタはキャレットと呼んで区別することがある。


26370 Re:テキストオブジェクトに入力された値を即変数として取得させたいが? 悲しげ 2004/05/19-14:18
記事番号26365へのコメント
文意をよく掌握できておりませんが、(^^;)
印刷実行はコマンドボタンからのようですから、
当該ボタンの機能の1行目を
 機能  同パラ
 表示  確定する
 **印刷 ・・・
のようにしてみてはどうでしょう?

26371 Re:変数が数値の場合には 手塚 修 2004/05/19-15:06
記事番号26368へのコメント
ONnojiさん

 すぐ教えていただきましたのに、ようやくです。ようやく、出来ました。

>*---------------------------------*
>名札 メイン
> 変数宣言 局所,数値{ &m月 }
>
>*
>
>手続き定義開始 テキスト_1::編集文字列変更( )
> 変数宣言 局所,文字列{ &string }
> 変数宣言 自動,整数{ &return }
>
> メソッド呼び出し 戻り値 = &return,&this.編集文字列取得( &string )
>
> &m月 = #数値( &string )
>
>手続き定義終了
>*---------------------------------*
>
思っていた通りに、即、変数として取得できました。これで又進みます。
素人でもソフトが作れる。もうすこしかな?と思っております。

これからも教えてください。

ありがとうございました。

26372 Re:テキストオブジェクトに入力された値を即変数として取得させたいが? 手塚 修 2004/05/19-15:42
記事番号26370へのコメント
悲しげさん お世話になります。

>印刷実行はコマンドボタンからのようですから、
>当該ボタンの機能の1行目を
> 機能  同パラ
> 表示  確定する
> **印刷 ・・・
>のようにしてみてはどうでしょう?

前回、「モーダルフォームで開いたフォーム上のコマンドボタン」で
いろいろ教えていただきました者です。その時の続きでの年月指定、
印刷実行です。モーダルで呼出し、さらにモーダルで呼び出したフォーム上での
「印刷実行」の為、kevで印刷しています。

その為に、> **印刷 ・・・ は、考えませんでした。

ちなみに、モーダル、更なるモーダルでプレビューが使えない時には、
会話=する で我慢し、モーダルが関係しない時には、アックンさんが
教えてくれた見本を使わせていただいております。

今後ともよろしくお願いいたします。

ありがとうございました。

26373 Re:テキストオブジェクトに入力された値を即変数として取得させたいが? うにん 2004/05/19-16:00
記事番号26372へのコメント

>>印刷実行はコマンドボタンからのようですから、
>>当該ボタンの機能の1行目を
>> 機能  同パラ
>> 表示  確定する

>での「印刷実行」の為、kevで印刷しています。

kevだと同じ事をするには
@フォーム.更新モード設定(0)
ではないかな。

26375 Re:テキストオブジェクトに入力された値を即変数として取得させたいが? 悲しげ 2004/05/19-16:15
記事番号26372へのコメント
あぅ、
既に解決済みのようなので、蛇足モードになるかもしれませんが、(^^;)
「コマンドボタン(印刷実行)」と書かれている場合のボタンの機能は、
どうやら「手続き実行」か「マウス左クリック」イベントのようですね。
もし「手続き実行」なら、それを2行目に持って行って、1行目の記述を

 機能    同パラ
 表示    確定する
 手続き実行 ・・・

のようにしてもうまく行くような気がするのですが、都合がつけば試してみていただけます?

あるいは、行き先の手続き定義範囲内で、印刷コマンドを実行する前に

 メソッド呼び出し @フォーム.更新モード設定( 0 )

と記述することでうまく行くかどうか、とか。

26384 Re:テキストオブジェクトに入力された値を即変数として取得させたいが? 手塚 修 2004/05/19-18:13
記事番号26375へのコメント
悲しげさん お世話になります。

>どうやら「手続き実行」か「マウス左クリック」イベントのようですね。
「マウス左クリック」で「印刷実行」しました。

>もし「手続き実行」なら、それを2行目に持って行って、1行目の記述を
>
> 機能    同パラ
> 表示    確定する
> 手続き実行 ・・・
>
>のようにしてもうまく行くような気がするのですが、都合がつけば試して
>みていただけます?

  上記で できました。絞り込み、印刷実行となりました。

>あるいは、行き先の手続き定義範囲内で、印刷コマンドを実行する前に
>
> メソッド呼び出し @フォーム.更新モード設定( 0 )

  上記はうまくいきませんでした。印刷コマンドボタンの「マウス左クリック」
の手続き定義内で記述しましたが、指定のオブジェクトはなしで不可。
当方のフォーム名(指定年月.wfm)を記述しても不可。当方、「@フォーム」の意味が理解できていない為と
「行き先の手続き定義範囲内で」が間違っているためかもしれません。
 以上 試験しました。

悲しげさん うにんさん ありがとうございました。

26386 Re:テキストオブジェクトに入力された値を即変数として取得させたいが? 悲しげ 2004/05/19-20:25
記事番号26384へのコメント
どもっ、手塚さん
幾つかのことがゴチャゴチャになっているような気が致しますが(^^;)、

ボタンのクリックからkevで処理させる方法は、ボタンの機能としての
「手続き実行」と「マウス左クリック」イベントのふたつがあります。
どちらかと云うと前者「手続き実行」を使う方が何かと無難なようです。
具体的な理由などは忘れましたが、ここの過去ログの中でもそんな感じの応答があったような
記憶があるような気がするような記憶があるような気がします(^^;)。
私も殆ど「手続き実行」の方を使っています。
でも「マウス左クリック」イベントの方だと、&マウス位置、&フラグ、
&処理中止・・・等の値を利用することはできますね。

余談ながら、ひとつのボタンにこの両方を記述した場合は、
まず「左クリック」イベントの記述が実行され、それが終わってから「手続き実行」の記述が続きます。

ただし、

>>あるいは、行き先の手続き定義範囲内で、印刷コマンドを実行する前に
>> メソッド呼び出し @フォーム.更新モード設定( 0 )
>  上記はうまくいきませんでした。印刷コマンドボタンの「マウス左クリック」
>の手続き定義内で記述しましたが、指定のオブジェクトはなしで不可。

ん〜と、「指定のオブジェクトはなし」云々と云うことで、これは根本的
に記述が間違っているのだと思われます。つまり「マウス左クリック」からだからうまく行かないとか云う問題ではなく。(^^;)
あるいは「@フォーム」は、この掲示板では半角カナが全角に自動変換されますが、
元々は半角カナですから、ひょっとしてこのことかな?

26392 Re:テキストオブジェクトに入力された値を即変数として取得させたいが? 手塚 修 2004/05/20-08:58
記事番号26386へのコメント
悲しげさん  お世話になります。

>あるいは「@フォーム」は、この掲示板では半角カナが全角に自動変換され
>ますが、元々は半角カナですから、ひょっとしてこのことかな?
>
 半角カナでなかった為です。半角カナで、出来ました。

結果、教えていただきました全ての方法で、即、変数取得となりました。
いろんな方法、考え方があるものだなと感心しています。


>幾つかのことがゴチャゴチャになっているような気が致しますが(^^;)、
>

そのとおりです。理解し、整理しなければなりません。
「桐井戸端」で調べ、皆さんの質問・投稿を読み、少しでもイベント処理に手が届ければと思っています。

「聞くは一時の恥」の精神です。ご迷惑をおかけします。
今後とも、お教えの程 よろしくお願い申し上げます。

ありがとうございました。

戻る