過去の桐井戸端BBS (桐ver.8)
14570 選択行の背景色を違う色に変えたい taka 2001/12/21-10:09
一覧表で一行おきに背景色を変え、尚且つそのレコード内の[STEP]が1の時だけ背景色を露草色にしていますが、
セレクタ等で選択された行の背景色を違う色に変えたいのですが、"セレクタで選択された" という表現方法がわかりません、
何方かご存知の方、知恵を拝借したいのですが。
編集属性式に

 #条件選択([STEP]=1,"背景色'露草色'",#MOD(#行番号,2)=1,"背景色'ラベンダー'")

を記述しております。
宜しくお願いします。
14571 Re:選択行の背景色について 今村 誠 2001/12/22-00:57
記事番号14570へのコメント
takaさんこんにちは

編集属性式に以下の式を

#条件選択(&行位置=#行番号,"背景色'黄',文字色'青'",#MOD(#行番号,2)=1,"背景色'薄水色'")

proc フォーム::レコード移動(長整数 &行番号,長整数 &総件数,長整数 &明細番号)
&行位置=&行番号
  method @t住所.再描画(1) /* 色を変えたいオブジェクト名を書いてください*/
end

を設定すれば、編集行の色が変わると思います。
※&行位置はメイン部で変数宣言(数値)して置いてください。
14573 Re:選択行の背景色について 悲しげ 2001/12/22-10:49
記事番号14571へのコメント
どもっ、takaさん、

>セレクタ等で選択された行の背景色を違う色に変えたいのですが、

「セレクタ等で」の「等」は、他に何を含意しているのでしょう?

今村さん、
提示された方法だと、カレントの処理対象行はそのように表示されますが、
行セレクタと処理対象行が異なる場合には該当しないと思うのですが?
カレントの行セレクタ位置と処理対象行は独立しているようです。
行セレクタの位置を取得する方法は、私も知りたいです。(^^;)

と云うことで、再びtakaさん、

>"セレクタで選択された" という表現方法がわかりません、

行セレクタと処理対象行が異なる場合には、どちらを優先させたいですか?
っつーか、上で書いたようにもし桐ver8では「行セレクタ」位置を取得することができないのであれば、
指定した行セレクタについては反転凹み状態になっている=一目瞭然なので是とし、
処理対象行のみの色変え(今村さんの方法等)で我慢するってのはどうでしょう?

14575 Re:選択行の背景色について 今村 誠 2001/12/22-14:36
記事番号14573へのコメント
悲しげさんこんにちは
>提示された方法だと、カレントの処理対象行はそのように表示さ
>れますが、行セレクタと処理対象行が異なる場合には該当しない
>と思うのですが?
確かにそうですね、もしかしたらctrlを押しながら指定した行の背景色を変えたいのかもしれませんね?
マウス左ダウンかクリックもしくはアップイベントで、ctrlと行セレクターが押されたときに、
項目値訂正で、作業用の項目値を変更して、背景色の変更をしたらうまくいくかもしれませんね。

行セレクタの解除がされたときの取得ができないので、工夫が必要だと思います。
 絞込選択行などの、コマンドボタンで、指定していない場合、グレーになってボタンが押せませんが、
指定しているか指定していないかをボタンの有効や無効で、メソッドで取得できないのでしょうか?

14577 Re:選択行の背景色について 悲しげ 2001/12/22-21:52
記事番号14575へのコメント
どもっ、今村さん

他にも、行セレクタを[Shift]+クリックで範囲指定もありますよね。
こちらもなかなか難解そうです。(^^;)
丁度【多遊】さんのところの#2526で似たような話題が上がってましたね。

あと、行セレクタの解除も考慮ですか。ううう、辛い・・・(^^;)
14580 Re:選択行の背景色について 今村 誠 2001/12/23-11:49
記事番号14577へのコメント
悲しげさんこんにちは

>他にも、行セレクタを[Shift]+クリックで範囲指定もありますよね。
>こちらもなかなか難解そうです。(^^;)

これには対処できそうもないですね

>あと、行セレクタの解除も考慮ですか。ううう、辛い・・・(^^;)

これはコマンドボタンを作成して、解除されたよで置換しかないと思います。(名案が浮かばない)

並び替えたり、順番付けを次々したいときは、訂正モードにして、
枝番項目で、入力前イベントをすると楽です。
訂正モードに入るコマンドボタン「枝番0」に
変数の初期化と枝番を未定義値にする置換或いは手続きを
パラメーターにしたあと下記の感じですればいいのじゃないかな

proc t枝番::入力前(参照 文字列 &編集文字列)
    &M5=#cond(&M5<1,1,1,&M5+1)
&編集文字列=#NVL(&編集文字列,#str(&M5))
end

最初の表題からだいぶずれてきましたが、この枝番項目で背景色を変更することもできますので、いいかな?

ps レコード数が多いと、この処理は向かないと思います。
   このイベントは、m&sの見積書などの明細移動にしか使いません。

14608 Re:選択行の背景色について(お礼) taka 2001/12/25-08:44
記事番号14580へのコメント
今村さん、悲しげさん
こんにちは、早速のレス頂きながら暦どおり休みまして
何の返答も出来ず失礼しました。
質問は単純に"処理対象行背景(前景)モード"より編集属性式が優先するみたいなので、
両立させて動作したいと思ったのですが・・・。
因みに、悲しげさんからの質問の「セレクタ等」はレコードスクロールです。
また選択は必ず一行で複数行は選択しません。
単純に考えていましたが、結構難しいものなのですね。
色々貴重なレス頂きましたので、これからやってみます。
その結果は、また報告します。
桐を始めて丁度3ヶ月の私ですが、今後とも宜しくご指導お願いします。

14609 Re:結果報告(お礼) taka 2001/12/25-09:17
記事番号14608へのコメント
今村さん、悲しげさんこんにちは、
早速教えて頂いた

>編集属性式に以下の式を
>#条件選択(&行位置=#行番号,"背景色'黄',文字色'青'",#MOD(#行番号,2)=1,"背景色'薄水色'")
>proc フォーム::レコード移動(長整数 &行番号,長整数 &総件数,長整数 &明細番号)
>&行位置=&行番号
>  method @t住所.再描画(1) /* 色を変えたいオブジェクト名を書いてください*/
>end
>を設定すれば、編集行の色が変わると思います。
>※&行位置はメイン部で変数宣言(数値)して置いてください。

を実行しました、希望どおりの動作になり感激しております。
ひとつ上手くいけば欲が出まして、悲しげさんの指摘のとおり複数行選択もやりかい等と思いますが、
今回の仕様ではこれで満足しています。
色々有難う御座いました。
今後とも宜しくお願いします。


戻る