PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
22023 05/06/03 12:03:24 RE(6):カスタムクラスで利用するプロパティの作成方法が分かりません By ぼん
22017 05/06/01 17:54:16 RE(5):カスタムクラスで利用するプロパティの作成方法が分かりません By Cherry_Sunburst
22013 05/06/01 14:56:17 RE(4):カスタムクラスで利用するプロパティの作成方法が分かりません By ぼん
22008 05/06/01 09:32:43 RE(3):カスタムクラスで利用するプロパティの作成方法が分かりません By Cherry_Sunburst
22004 05/05/30 16:22:59 RE(2):カスタムクラスで利用するプロパティの作成方法が分かりません By ぼん
21996 05/05/27 15:23:58 RE(1):追記 By Cherry_Sunburst
21995 05/05/27 15:22:24 カスタムクラスで利用するプロパティの作成方法が分かりません By Cherry_Sunburst

カテゴリ:スクリプトの記述
日付:2005年06月01日 17:54 発信者:Cherry_Sunburst
題名:RE(5):カスタムクラスで利用するプロパティの作成方法が分かりません

ぼんさん、こんにちは。

>うーん・・言われてる事が理解できるようなできないようなって感じなのですが
>Class.A = Value     ・・・A変数へValueをセット
>Value = Class.A     ・・・A変数の値を取得
>私はこんな感じでやってます。(こんな使い方もあまりしませんが・・)
>あくまでAはClass内のインスタンス変数ですが・・。
>とくに複雑になった事も混乱する事もないと思いますが・・。

ひとつだけ質問させて下さい。
この方法を取った場合、「Class内のインスタンス変数のA」のスコープは「Public」ですよね?
そうだとすると、以下のような例の動作を行いたい場合、不正値が入ってしまいます。

例:
 呼び元(Window):
  Class.A = 0という文より、ClassインスタンスのAという変数に0をセットする。

 呼び先(Class):
  Aという変数に値設定が許されるのは自然数(n >= 1)のみ。

上記のようにした場合、呼び元から、いくら0(呼び先で許可していない値)をセットしようとしても、
値設定がされない、などという動作をしたいという事です。
しかし、現状の方法ですと、A変数のスコープを「Public」で操作しているが為に、
外部(呼び元)からの値設定処理で、何でも入れる事が出来てしまいます。
(というより、制御処理が行えません)まぁ、型違いはコンパイル時にエラーになりますが。

例えばWindowオブジェクトのプロパティ。「1ページの行数」などというプロパティがありますが、
これは、入力上は「99999999999」まで入力出来ます。
しかし、Enterキーなどで確定をすると、「32767」になります。(Integer型の最大値)
これは、『入力許可をしている最大値が「32767」で、それを超えた値が入力された場合は、
自動的に「32767」とする。』という制御が掛かっています。
マイナス値を入れた場合にも、自動的に「0」となります。
(何故かコーディング上で変更すると許可されてしまいますが・・・)
こういった制御を、自作のクラス内に存在するプロパティに行いたいのです。

コーディング上で変更された場合に許可されてしまうという事は、
PowerBuilder自体にそういう手法がなさそうですね・・・。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.