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 (記載なし)

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