4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

【小技】ボタンのenabled状態を制御するコマンド

Go down

【小技】ボタンのenabled状態を制御するコマンド Empty 【小技】ボタンのenabled状態を制御するコマンド

投稿 by miyako 2017-05-12, 10:01 am

ボタンがクリックできるか否かを制御する下記のコマンドには『旧式』のランゲージであることを示す接頭辞『_o_』が付されています。

_o_ENABLE BUTTON
_o_DISABLE BUTTON

『_o_』から始まるコマンド名はメソッドエディターのタイプアヘッド入力候補から除外されており,新規の開発では使用を控えることが勧められています。

廃止予定のコマンドは非表示に

接頭辞は『前方一致』条件のデザインモード検索で容易に列挙することができ,変換されたアプリケーション内における使用回数を見定めるのに役立っています。

代替コマンドは,OBJECT SET ENABLEDですが,では,旧式コマンドを機械的に置換すれば良いのかといえば,そうではありません。

新旧のコマンドは,仕様に互換性がないため,個別に判断する必要があります。

原則①

焦らない

v16プロダクトレンジで廃止予定または削除された機能のページには,旧式コマンドが挙げられていますが,実際に『除去』あるいは『削除』の予定があると明記されているものは比較的少数です。

XSLT処理のサポートは将来のリリースにおいて削除されます。
次のリリースにおいて(QuickTime)のAPIのサポートを打ち切る予定です。
QuickDrawフォント)コマンドは互換性のために残されていますが、今後のバージョンで削除されます。
将来のメジャーバージョンにおいて(非Unicodeモード)を除去する予定でいます。

OSやライブラリなど,外的な要因が廃止のおもな理由であることに注目できます。

ボタンのenabled状態の制御は,4Dの仕様がより洗練されたことに伴う切り替えであるため,早く書き換えるように,というプレッシャーを感じなくても大丈夫です。

原則②

混ぜない

同一フォーム上でENABLE BUTTON/DISABLE BUTTONとOBJECT SET ENABLEDが混在していると,うまく協働しないことが知られています。どちらのコマンドも変数あるいはオブジェクト名を渡すことができますが,旧コマンドは変数に対して作用するのに対し,新コマンドはオブジェクト名に対して作用するためです。それで,一気に変換するか,あるいはアプリケーション内のモジュール毎に切り替えるなど,戦略的に置き換える必要があります。

その他

標準アクション(次ページなど)が設定されたボタンのenabled状態は,自動的に変化しますが,以前のバージョンでは,これをコマンドでオーバーライドすることもできました。たとえば,特定の条件が満たされるまで『次へ進む』ボタンをクリックできないようにすることができました。現バージョンでは,標準アクションによるボタンの状態をコマンドで打ち消すことはできません。そのようなボタンの状態を制御するには,まず,コマンドで標準アクションを取り消した上で,コマンドを使用してください。

例:

OBJECT SET ACTION(*;"Button";Object No standard action)
OBJECT SET ENABLED(*;"Button";False)

OBJECT SET ACTION(*;"Button";Object Next page action)
OBJECT SET ENABLED(*;"Button";True)

miyako

投稿数 : 483
登録日 : 2016/07/05

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可