グラフ形式のユーザーインターフェース
次に紹介するのは、グラフ形式のユーザーインターフェースです。VB6には、MSChartというコントロールがあり、様々な形式のグラフ(棒グラフや折れ線グラフなど)にデータを表示できました。Curlにも、VB6と同様の様々なグラフが用意されています(図7)。
VLEを使えば、Canvasにグラフをビジュアル的に貼り付けることができます。ただし、Curlでは、VLEを使わずにコードだけでユーザーインターフェースを作ることもできるようになっています。ここでは、あえてVLEを使わないでグラフにデータを表示するプログラムを作ってみましょう。
新たに「GraphSample」という名前で、「アプレットプロジェクト」を作成してください。VLEを使わない場合は「アプレットプロジェクト」になります。IDEの左上に表示されたstart.curlをダブルクリックしてエディタを開いたら、自動生成されている宣言文の下に、リスト3に示したコードを記述してください。
{import * from CURL.GUI.CHARTS} {value || レコードセットを用意する let data:RecordSet = {RecordSet {RecordFields {RecordField "fruit", domain = String}, {RecordField "sales", domain = int} }, {RecordData fruit = "りんご", sales = 100}, {RecordData fruit = "みかん", sales = 200}, {RecordData fruit = "ぶどう", sales = 300}, {RecordData fruit = "いちご", sales = 400} } || 棒グラフを作成し、レコードセットを設定する let chart:LayeredChart = {LayeredChart height = 10cm, width = 10cm, {BarLayer x-axis-data = {ChartDataSeries data, "fruit"}, {ChartDataSeries data, "sales"} } } || 棒グラフを表示する chart }
コードの記述が終わったら、プログラムを実行してみましょう。図8に示したように、果物の売り上げを示す架空のデータが棒グラフに表示されます。この実行結果をもとに、コードの内容を説明しましょう。
{import * from CURL.GUI.CHARTS} の部分は、グラフを表示するAPI(あらかじめ用意されているソフトウエアの部品群のこと)であるCURL.GUI.CHARTSのインポート宣言です。APIのインポートは、VB6でカスタムコントロールに参照設定をすることに相当します。
グラフに表示するデータは、レコードセットにまとめて格納します。VB6にもADOでレコードセットが使われますが、Curlのレコードセットも、それと似たものです。let data:RecordSet の部分は、RecordSet型の変数dataを宣言し、2行ある {RecordFileds・・・} でフィールド名とデータ型を指定し、4行ある {RecordData・・・} でデータを格納しています。
let chart:LayeredChartの部分は、LayeredChart型の変数chartを宣言し、heightとwidthで高さと幅を指定し、{BarLayer・・・} でグラフの種類が棒グラフであることと、X軸とY軸に表示する項目がレコードセット(変数data)のどのフィールドであるかを指定しています。最後にあるchartで、棒グラフが表示されます。
おわりに
以上、駆け足でしたが、Curlを使ってちょっと凝ったユーザーインターフェースを作る例をいくつか紹介しました。ユーザーインターフェースの作り方がわかったら、次に知りたくなるのはファイルのアクセスでしょう。そこで、次回は、Curlを使ってファイルを読み書きする方法を紹介します。
{link href = {url "http://www.curlap.com/"}, CurlのWebページへのリンク}
の部分を
{link href = {url "http://www.curlap.com/"}, {image source = {url "cat.jpg"}}}
に変更します。