PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
23945 | 13/05/18 09:40:35 | RE(3):ユーザ オブジェクトのインスタンス作成 By いつか |
23944 | 13/05/17 15:06:18 | RE(2):ユーザ オブジェクトのインスタンス作成 By いつか |
23943 | 13/05/17 11:27:18 | RE(1):ユーザ オブジェクトのインスタンス作成 By asano01 |
23942 | 13/05/16 19:13:18 | ユーザ オブジェクトのインスタンス作成 By いつか |
カテゴリ:スクリプトの記述
日付:2013年05月17日 11:27 発信者:asano01
題名:RE(1):ユーザ オブジェクトのインスタンス作成
いつかさん、こんにちは。
CREATE文で生成できるオブジェクトは1つだけです。
なので、必要な数だけ作成する必要があります。
対象オブジェクトのプロパティの「インスタンスの自動生成」をチェックしてはどうですか?
String型などの変数と同じように扱うことができます。
//宣言
n_myobject invo_myobject[]
invo_myobject[1].p01_name[1] = \"NONVISUALOBJECT\" // このときに自動生成
オブジェクトの破棄は「ガベージ コレクション」にまかせます。
配列オブジェクトの破棄は、順番や歯抜けなどのコントロールが難しいですから。
もし、どうしてもスクリプトでしたいなら、FOR文でまわすか、参照のたびに
IsValidでインスタンスが生成されているか、チェックしてください。
//宣言
Integer I , J
n_myobject invo_myobject[]
FOR I = 1 TO OBJ_COUNT
invo_myobject[I] = CREATE n_myobject
FOR J = 1 TO NAME_COUNT
invo_myobject[I].name[J] = CREATE p01_name
NEXT
NEXT
>お疲れ様です。
>
>ヘルプにて、非ビジュアルオブジェクトの挿入法で
>// n_myobject invo_myobject
>invo_myobject = CREATE n_myobject
>とありますが、該当するユーザーオブジェクトが配列だった場合、
>どのように指定すればいいのでしょうか。
>
>例)
> p01_SendData
> string sendto[]
> string body
> p01_name name[]
>
>test = create p01_SendDataで出来ますが、
>更にその中の p01_nameを作成できません。
> test.name = create p01_name[]
>「配列に対して、配列でない値を代入しようとしています」
> test.name[] = create p01_name[]
>としても、同様のエラーとなります。
>
>アドバイスよろしくお願いします。
>
>Version:12.1
>
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows XP
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS その他
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.