Thread Rating:
  • 250 Vote(s) - 2.91 Average
  • 1
  • 2
  • 3
  • 4
  • 5
ComboBoxを配列化について
04-22-2014, 09:43 AM,
#1
ComboBoxを配列化について
こんにちは お知恵をお貸しください。

ComboBoxを配列化したいのですがうまくできません。

{let ACB:#{Array-of ComboBox}}||配列宣言
{set ACB[0]={ComboBox width=270px}}||実行時ここでエラーが発生します。


エラー内容
ullDereferenceException: 非 null 値が要求されている箇所 (0x06379336) に、null を使用しようとしています。

宜しくお願いします

Reply
04-22-2014, 12:45 PM,
#2
RE: ComboBoxを配列化について
>{let ACB:#{Array-of ComboBox}}||配列宣言
>{set ACB[0]={ComboBox width=270px}}||実行時ここでエラーが発生します。

これだと次のような意味になるのでは。
 ・ComboBox配列またはnullを格納するACBという変数を宣言(初期化していないので中身はnull)
 ・ACBに格納されているnullを配列としてアクセス

意図していたのはこのようなコードでしょうか?
Code:
{value
    || ComboBoxまたはnullを格納する配列を生成して変数ACBに格納
    let ACB:{Array-of #ComboBox} = {new {Array-of#ComboBox}}
    
    || この時点では、要素数0の配列なので、ACB[0]にはアクセスできない。
    
    || 変数ACBに格納されている配列に要素を追加(1つ目の要素なのでACB[0]として取り出しせる)
    {ACB.append {ComboBox width=270px}}
    || ここでACB[0]が取り出せるようになる
    ACB[0]
}

おそらくイメージされている配列とArrayが違うのではないかと思いますので、
Curlドキュメントの「配列」の項を読むと納得できるのでは。
Reply
04-22-2014, 03:41 PM,
#3
RE: ComboBoxを配列化について
補足ですが、上のコード例で#ComboBoxとしているのは配列の中がnullの状態も許したいのかと勝手に想像して
null許容にしただけなので、途中が抜けることなくComboBoxを格納する場合は{Array-of ComboBox}に
読み替えてください。

また、配列の要素数が最初に決められる場合はFastArray-ofのほうが高速でよいかもしれません。
Code:
{value
    let facb:{FastArray-of ComboBox} =
        {new {FastArray-of ComboBox},
            {ComboBox width=270px, value = "A"},
            {ComboBox width=270px, value = "B"},
            {ComboBox width=270px, value = "C"},
            {ComboBox width=270px, value = "D"}
        }
    
    {VBox
        facb[0],
        facb[1],
        facb[2],
        facb[3]
    }
}
Reply
04-23-2014, 02:40 PM,
#4
RE: ComboBoxを配列化について
dyoshidaさま

ご丁寧なご回答ありがとうございました

ご指摘の通り配列の認識が間違っていました。
宣言時にオブジェクトが出来ているものと勘違いしていました。
おかげ様で思う通りの動作になり満足しております。

Reply

Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('1073')