RecordGridの複数行のコピーについて

【ご質問】
RecordGridにおいて、複数行のコピーと貼り付けは可能でしょうか。

【回答】
Curlのバージョン5.0以降から、RecordGrid上で表示されているデータは
マウス操作による行、列の選択はもちろん、任意の範囲選択も可能になり、
Ctrl+C キーでコピーして、Ctrl+V キーでペーストすることが可能になっています。
これらの操作はプログラムからでもコントロールすることが出来ます。

行・列の選択を行う際にはプロパティ
 record-selection-enabled?、column-selection-enabled?
がtrueである必要があります。また、複数行・複数列の選択を行う際には
 multiple-selection-enabled?
がtrueである必要があることにもご注意ください。

詳細は、Curl開発者ガイドの
[データの管理と表示]-[データ レコードとグリッド]
の項内の[データのコピーと貼り付け]の項をご参照ください。

また以下のサンプルも参考にしてください。

{curl 5.0,6.0,7.0,8.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}

{let people:RecordSet =
    {RecordSet
        {RecordFields
            {RecordField “First”, domain = String},
            {RecordField “Last”, domain = String},
            {RecordField “Age”, domain = int},
            {RecordField “Age2”, domain = int}
        },
        {RecordData First = “A”, Last = “AAA”, Age = 21, Age2 = 1},
        {RecordData First = “B”, Last = “BBB”, Age = 22, Age2 = 2},
        {RecordData First = “C”, Last = “CCC”, Age = 23, Age2 = 3},
        {RecordData First = “D”, Last = “DDD”, Age = 24, Age2 = 4},
        {RecordData First = “E”, Last = “EEE”, Age = 25, Age2 = 5},
        {RecordData First = “F”, Last = “FFF”, Age = 26, Age2 = 6},
        {RecordData First = “G”, Last = “GGG”, Age = 27, Age2 = 7},
        {RecordData First = “H”, Last = “HHH”, Age = 28, Age2 = 8},
        {RecordData First = “I”, Last = “III”, Age = 29, Age2 = 9},
        {RecordData First = “J”, Last = “JJJ”, Age = 30, Age2 = 10}
    }
}
{let rg:RecordGrid = {RecordGrid
                                 record-source = people,
                                 height = 8cm,
                                 width = 13cm
                             }
}
{let fr:Frame = {Frame}}
{let cb1:CommandButton = {CommandButton
                                            width = {make-elastic},
                                            label = “行(レコード)選択を無効化”,
                                            {on Action do
                                                {set rg.record-selection-enabled? = false}
                                                {fr.clear}
                                                {fr.add “行(レコード)選択を無効化しました”}
                                            }
                                        }
}
{let cb2:CommandButton = {CommandButton
                                            width = {make-elastic},
                                            label = “行(レコード)選択を有効化”,
                                            {on Action do
                                                {set rg.record-selection-enabled? = true}
                                                {fr.clear}
                                                {fr.add “行(レコード)選択を有効化しました”}
                                            }
                                        }
}

{VBox
    rg,
    {HBox
        cb1,
        cb2
    },
    {HBox
        {CommandButton
            width = {make-elastic},
            label = “3行目から5行目を選択”,
            {on Action do
                {rg.select-record-range 2, 4}
                {fr.clear}
                {fr.add “「コピー」ボタンを押してください”}
            }
        },
        {CommandButton
            width = {make-elastic},
            label = “コピー”,
            bound-command = {rg.get-command “copy”},
            {on Action do
                {fr.clear}
                {fr.add “下のTextAreaでCtrl+vで貼り付けてください”}
            }
        }
    },
    {TextArea height = 2cm},
    fr
}