HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
ファイル一覧
検索
過去ログ
[ スレッド内全8レス(親記事-8 表示) ] <<
0
>>
■14452
/ 親記事)
チェックボックスの動作
▼
■
□投稿者/ 篤姫
-(2024/06/25(Tue) 10:12:53)
桐10s windows11
いつも勉強させていただいています。
フォームのチェックボックス[A]:数値
オンの値:1 オフの設定:する オフの値:0
イベントでマウス左クリックで
行訂正 [B]=#条件選択([A]=1,&A,1,"")
ところが
チェックを入れると[B]に&Aは入らず
チェックをはずすと[B]に&Aが入ります。
何が間違っているかご教示願えませんか?
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14453
/ ResNo.1)
Re[1]: チェックボックスの動作
▲
▼
■
□投稿者/ ONnoji
-(2024/06/25(Tue) 13:02:52)
2024/06/25(Tue) 13:25:03 編集(投稿者)
> 桐10s windows11
> フォームのチェックボックス[A]:数値
> オンの値:1 オフの設定:する オフの値:0
フォームにチェックボックスを配置したことは判りました。
1.さて、そのチェックボックスをどのセクションに配置したのでしょうか?
フォームヘッダ部
フォーム明細部
フォームフッタ部
のどれですか??
2.また、フォームの形式はなんでしょうか??
一覧表形式
伝票形式
カード形式
3.項目[A]が存在する表(.tbx)は???
フォームの編集対象表ですか?
それとも、イベント処理で開いた表(.tbx)でしょうか?
4.項目[B]が存在するのは項目[A]と同一の表(.tbx)でしょうか?
5.項目[A]と項目[B]のデータ型は何でしょうか?
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14454
/ ResNo.2)
Re[2]: チェックボックスの動作
▲
▼
■
□投稿者/ 篤姫
-(2024/06/25(Tue) 14:04:55)
ONnojiさん
ありがとうございます。
カード形式のフォームです。
フォーム名細部です。
項目の表はフォームの編集対象表です
項目[B]とA]はフォームの編集対象表です。
項目[A]は数値
項目[B]は文字列です
よろしくお願いします。
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14455
/ ResNo.3)
Re[3]: チェックボックスの動作
▲
▼
■
□投稿者/ ONnoji
-(2024/06/25(Tue) 14:09:38)
> イベントでマウス左クリックで
> 行訂正 [B]=#条件選択([A]=1,&A,1,"")
× [マウス左クリック]イベント
〇 [ソース値更新]イベント
チェックボックスのオブジェクトの[ソース値更新]イベントを試してみてください。
<参考>
16.4 [ソース値更新]イベントの注意点|フォームアプリケーション教書 第1部
http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section16-4
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14456
/ ResNo.4)
Re[4]: チェックボックスの動作
▲
▼
■
□投稿者/ 篤姫
-(2024/06/25(Tue) 15:02:13)
ONnojiさん
ありがとうございます。
ソース値更新にすると
行訂正ではエラーがでました。
項目地代入で動作しました。
チェックボックスは
オン=1
オフ=0 に設定しています。
ソース値更新もしくはマウス左クリックを使用する場合
チェックボックスのオンに対してではなく
オフの値に対して条件式を設定するのが正しいのでしょうか?
よろしくお願いします。
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14457
/ ResNo.5)
Re[5]: チェックボックスの動作
▲
▼
■
□投稿者/ ONnoji
-(2024/06/25(Tue) 15:56:28)
2024/06/26(Wed) 14:27:07 編集(投稿者)
2024/06/25(Tue) 18:39:13 編集(投稿者)
> チェックボックスは
> オン=1
> オフ=0 に設定しています。
> ソース値更新もしくはマウス左クリックを使用する場合
> チェックボックスのオンに対してではなく
> オフの値に対して条件式を設定するのが正しいのでしょうか?
[マウス左クリック]イベントはお勧めしません。理由は以下にたくさん書いておきました。(^^ゞ
[ソース値更新]イベントを使うべきだと思いますよ。
チェックボックスをマウス左クリックした場合、
マウス左ダウン → マウス左アップ → マウス左クリック → ソース値更新
の順番にイベントが発生します。
(注意)マウス左ダウン した後で、マウスポインタをチェックボックスの上から他へ移動すると、マウス左アップとマウス左クリックは発生しません。
実は、チェックボックスの値を変える(ソース値更新)方法としては、マウス左クリック以外の方法もあるんですよ!
つまり、チェックボックスにフォーカスが有る時に、[スペース]キーを押しても、オンの値とオフの変わりますよ。アクセスキーでも同じく変わります。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・
従って、[マウス左クリック]イベントが発生した時点で、チェックボックスのオン/オフが変わることは絶対ないのですよ。
・・・・・・・・・・・・・・・・・・・・・・ ・・・・・・・・・・・・・・・・・・・・・・・・・・・・
チェックボックス(トグルボタン)には、[ソース値更新]イベントがあるのですから、それを利用するのが正しいですよ。
このことは案外と多くの人が気が付いていないようですね。(^^ゞ
◇ ◇ ◇ ◇ ◇ ◇
<参考>
論より証拠ですから、トレース結果を以下に示します。
チェックボックス:chkA
ソース :[A]
データ型 :数値
オンの値 :1
オフの値設定:する
オフの値 :0
以下は、チェックボックスがオフの時に([A]の値がゼロ)の時にマウス左クリックした直後のトレース
┌when :chkA::マウス左ダウン()を実行開始しました
│
│ :[A] : 0 ← この時点では オフの値 です
│
└end
┌when :chkA::マウス左アップ()を実行開始しました
│
│ :[A] : 0 ← この時点では オフの値 です
│
└end
┌when :chkA::マウス左クリック()を実行開始しました
│
│ :[A] : 0 ← この時点では オフの値 です
│
└end
┌when :chkA::ソース値更新()を実行開始しました
│
│
│ :[A] : 1 ← ここで既に オンの値 になっていることが確認できます
│
│ ※これは[ソース値更新]イベントが発生する前にオン/オフが切り替わっているということです
└end ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
■使用したイベント処理(.kex)
名札 メイン
*
手続き定義開始 chkA::マウス左ダウン(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
変数宣言 自動,文字列{ &title = "chkA::マウス左ダウン()", &msg }
変数宣言 自動,整数 { &trace }
&trace = 1
条件 ( &trace ) トレース出力 &title + "を実行開始しました"
条件 ( &trace ) トレース出力 _[A]
条件 ( &trace ) トレース出力 &title + "を実行終了しました"
手続き定義終了
手続き定義開始 chkA::マウス左アップ(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ)
変数宣言 自動,文字列{ &title = "chkA::マウス左アップ()", &msg }
変数宣言 自動,整数 { &trace }
&trace = 1
条件 ( &trace ) トレース出力 &title + "を実行開始しました"
条件 ( &trace ) トレース出力 _[A]
条件 ( &trace ) トレース出力 &title + "を実行終了しました"
手続き定義終了
手続き定義開始 chkA::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止)
変数宣言 自動,文字列{ &title = "chkA::マウス左クリック()", &msg }
変数宣言 自動,整数 { &trace }
&trace = 1
条件 ( &trace ) トレース出力 &title + "を実行開始しました"
条件 ( &trace ) トレース出力 _[A]
条件 ( &trace ) トレース出力 &title + "を実行終了しました"
手続き定義終了
手続き定義開始 chkA::ソース値更新()
変数宣言 自動,文字列{ &title = "chkA::ソース値更新()", &msg }
変数宣言 自動,整数 { &trace }
&trace = 1
条件 ( &trace ) トレース出力 &title + "を実行開始しました"
条件 ( &trace ) トレース出力 _[A]
条件 ( &trace ) トレース出力 &title + "を実行終了しました"
手続き定義終了
p.s.
> 実は、チェックボックスの値を変える(ソース値更新)方法としては、マウス左クリック以外の方法もあるんですよ!
>
> つまり、チェックボックスにフォーカスが有る時に、[スペース]キーを押しても、オンの値とオフの変わりますよ。アクセスキーでも同じく変わります。
これはコマンドボタンの場合も同じです。
つまり、コマンドボタンにフォーカスが有る時に、[スペース]キーを押してもコマンドボタンは実行されるのです。アクセスキーでも同じく実行出来ます。
いわんや、[Enter] キーを押してもですけれどね。
ということで、[マウス左クリック]イベントが万能だと考えるのは危険ですよ。
<参考>
12.3 コマンドボタンを実行する|フォームアプリケーション教書 第1部
http://silicon7565.html.xdomain.jp/guide/guide_Part1.htm#section12-3
> コマンドボタンはマウス左クリックで実行することが多いのですが、それ以外の方法でもコマンドボタンを実行できます。
> 以下にコマンドボタンが実行されるタイミングを示します。
>
> a.マウスでコマンドボタンを左クリックした時
> b.コマンドボタンへフォーカスを移動して、キーボードの[スペース]または[Enter]キーを押した時
> c.コマンドボタンのアクセスキーを押した時(例えば[Alt]+[X])
> d.プロシージャ内でコマンドボタンの[実行]メソッドを実行した時
417×550 => 189×250
1719316016.jpg
/
49KB
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14458
/ ResNo.6)
Re[6]: チェックボックスの動作
▲
▼
■
□投稿者/ 篤姫
-(2024/06/25(Tue) 19:14:48)
ONnojiさん
ありがとうございます。
なかなか高度です。
ソース値更新にすると
チャックボックスでオンの1が入った段階で
イベントの処理を実行すると考えていいという事ですか
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14460
/ ResNo.7)
Re[7]: チェックボックスの動作
▲
▼
■
□投稿者/ ONnoji
-(2024/06/26(Wed) 09:07:10)
2024/07/10(Wed) 09:53:46 編集(投稿者)
2024/06/26(Wed) 23:08:20 編集(投稿者)
2024/06/26(Wed) 16:09:39 編集(投稿者)
> ソース値更新にすると
> チェックボックスでオンの1が入った段階で
> イベントの処理を実行すると考えていいという事ですか
チェックボックス:chkA
ソース :[A]
データ型 :数値
オンの値 :1
オフの値設定:する
オフの値 :0
↑のように、オンの値:1 と オフの値:0(オフの値設定:する)が設定されている場合には、
当該チェックボックスをマウス左クリックすると、
【マウス左クリック前】 【 マウス左クリック後】
a.オフの値:0(オフの値設定:する)の状態 → オンの値:1 の状態
b.オンの値:1 の状態 → オフの値:0(オフの値設定:する)の状態
のように状態が遷移します。
この時、どちらの場合でも[オン/オフの状態が変化した後]に、必ず[ソース値更新]イベントが発生しますよ。
・・・・・・・・・・・・・・
※[マウス左クリック]イベントは[オン/オフの状態が変化する前]に発生します。
> チェックボックスでオンの1が入った段階で
> イベントの処理を実行すると考えていいという事ですか
言葉の上げ足を取るつもりはありませんが・・・
イベントは発生するものですよ。
[ソース値更新]イベントが発生する前に、既にチェックボックスの状態(オン⇔オフ)は変わっています。
[ソース値更新]イベントが発生すると、対応する[イベントハンドラ]が呼び出されるという仕組みですよ。
引用返信
[メール受信/OFF]
削除キー/
編集
削除
■14463
/ ResNo.8)
Re[8]: チェックボックスの動作
▲
▼
■
□投稿者/ 篤姫
-(2024/06/26(Wed) 17:40:35)
ONnojiさん
ONnojiさんからご教示いただいた
ソース値更新にすることで
全てが正常な動作になりました。
ありがとうございました。
解決済み!
引用返信
[メール受信/OFF]
削除キー/
編集
削除
このスレッドをツリーで一括表示
スレッド内ページ移動 / <<
0
>>
このスレッドに書きこむ
入力内容にタグは利用できません。
他人を中傷する記事は管理者の判断で予告無く削除されます。
半角カナは使用しないでください。文字化けの原因になります。
名前、コメントは必須記入項目です。記入漏れはエラーになります。
入力内容の一部は、次回投稿時の手間を省くためブラウザに記録されます。
削除キーを覚えておくと、自分の記事の編集・削除ができます。
URLは自動的にリンクされます。
記事中に No*** のように書くとその記事にリンクされます(No は半角英字/*** は半角数字)。
使用例:
No123 → 記事No123の記事リンクになります(指定表示)。
No123,130,134 → 記事No123/130/134 の記事リンクになります(複数表示)。
No123-130 → 記事No123〜130 の記事リンクになります(連続表示)。
■お願い−−−−−−−
質問には、できるだけ「OS・桐 Ver」等ご記入願います
将来ここに掲載されました内容を、桐のファイルへ変換予定です。
できましたら、3,500文字以内位での投稿お願い致します
■ご注意(Comment)−−−−−
通常モード・・・通常文章等
図表モード・・・等幅表示(イベントや数字等を記入したとき:
初期設定
)
■
解決しましたら最下段にチェックを入れてください
■
引用文は、最小限に、お願いいたします
Name
/
E-Mail
/
└> 関連するレス記事をメールで受信しますか?
NO
YES
/ アドレス
非公開
公開
Title
/
メッセージ中には下記URLと同じURLを書き込まないで下さい
URL
/
Comment/ 通常モード->
図表モード->
(適当に改行して下さい/半角10000文字以内)
File
/
アップ可能拡張子=> /
.gif
/
.jpg
/
.jpeg
/
.png
/.txt/.lzh/.zip/.mid
圧縮ファイル[lzh,zip]は、事前に解凍してご利用下さい。
1) 太字の拡張子は画像として認識されます。
2) 画像は初期状態で縮小サイズ250×250ピクセル以下で表示されます。
3) 同名ファイルがある、またはファイル名が不適切な場合、
ファイル名が自動変更されます。
4) アップ可能ファイルサイズは1回
100KB
(1KB=1024Bytes)までです。
5) ファイルアップ時はプレビューは利用できません。
6) スレッド内の合計ファイルサイズ:[49/500KB]
残り:[451KB]
パスワード
/
半角小文字で「ケイ・アイ・アール・アイ」を入力
削除キー
/
(半角8文字以内)
解決済み!
BOX/
解決したらチェックしてください!
プレビュー/
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
ファイル一覧
検索
過去ログ
-
Child Tree
-
-
Antispam Version
-