「FAQ」カテゴリーアーカイブ

Curlに関するFAQのページです

フォントサイズの指定

【ご質問】
アプレット全体のフォントサイズを一箇所で指定してコントロールすることはできるのでしょうか。

【回答】
“set-document-properties”プロシージャでfont-sizeを指定することで可能です。

詳細は、APIリファレンスの
[CURL.ENGINE.APPLET]-[set-document-properties]
の項をご参照ください。 

3Dで作成したグラフのサイズを変更するには

【ご質問】
3Dで棒グラフを作成していますが、棒グラフ全体のサイズの変更はどのようにして行うのでしょうか。

【回答】
Sceneクラスのcameraの設定でサイズを変更することが可能です。

詳細は、Curl開発者ガイドの
[グラフィックスとレンダリング]-[シーン]-[カメラのコントロール]
の項をご参照ください。

ファイルの圧縮・解凍について

【ご質問】
Curlでデータの圧縮・解凍は出来るのでしょうか。
例えば圧縮したZIPファイルの解凍は出来るのでしょうか。

【回答】
gzip 形式または zlib 形式であれば標準APIである
DeflateByteOutputStream、InflateByteInputStream
を使用することで圧縮・解凍が可能です。

詳細は、APIリファレンスの
[CURL.IO.ZSTREAM]-[DeflateByteOutputStream]
[CURL.IO.ZSTREAM]-[InflateByteInputStream]
の項をご参照ください。

また以下のページもご参照ください。
http://developers.curlap.com/re-reference/14-io-networking/64-compress.html

それ以外の形式の場合は、Curlの標準APIのみでは実現することが出来ませんが、
外部の解凍・圧縮用DLLを呼び出すことによって実現可能です。

トグルボタン押下時のイベント取得について

◆ご質問◆
ツリーノードに子がある場合に表示されるプラス・マイナスのアイコンのイベントを取得するためには、どのようにしたら良いのでしょうか。

◆回答◆
トグルボタン(プラス・マイナスのアイコン)押下時ですが、
TreeControlUIクラスに、note-expansion-toggled というメソッドがあります。
これはnodeが縮小、拡大された時にオブジェクトに対して通知を行う役割を果たしており、
このメソッドをオーバーライドし、中に実行したい処理を書くことでトグルボタン押下時の処理を記述することが可能です。

Excelへのデータ出力について

【ご質問】
Curlから、直接Excelファイルへのデータ出力を行うことは出来るのでしょうか。

【回答】
直接Excelファイルへのデータ出力を行うことはできません。
ただし、ActiveXオブジェクトを経由してエクセルを利用することはできます。

詳細は、Curl開発者ガイドの
[グラフィカルユーザーインターフェース]-[ActiveXコントロール]
の項をご参照ください。

またDeveloperCenterの以下の記事をご参照ください。
http://developers.curlap.com/re-reference/25-data/93-activexexcel.html

CSVデータに関しては入力・出力を行うためのAPIが用意されています。
詳細は、Curl開発者ガイドの
[データの管理と表示]-[外部ソースのデータの管理]
の項をご参照ください。

IPアドレスの取得

【ご質問】
クライアント端末のIPアドレスを取得することはできるのでしょうか。

【回答】
SocketInetAddressクラスを使用することでクライアントPCのIPアドレスを
取得することが可能です。(ただし特権アプレットに限ります)
またその他の方法としてはspawn-host-shellを使用してWindowsコマンドを
使って取得する方法なども考えられます。

詳細は以下のサンプルをご参照ください。

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

{import * from CURL.IO.SOCKET}

{CommandButton
    label = “SocketInetAddressを使ってIP取得”,
    {on Action do
        {popup-message {SocketInetAddress SocketInetAddress.local-host}.address-as-String}
    }
}

また、APIリファレンスの
[CURL.IO.SOCKET]-[SocketInetAddress]
の項をご参照ください。

独立型アプレットが起動できない

◆ご質問◆
独立型アプレットをWebサーバに配置し、”http://~/start.dcurl”とURLにアクセスしましたが、エラーが発生し起動することが出来ません。
どうすれば解決できるのでしょうか。

◆回答◆
独立型アプレットでは、URLの先頭で特別な curl://launch/ プレフィックスを使用する必要があります。
http://~ の前に curl://launch/ がついているか確認して下さい。

HTMLをCurlの中で表示するには

【ご質問】
HTMLファイルをCurlの中で表示したいのですが、どうすればよいのでしょうか。

【回答】
ActiveXオブジェクトを経由して、InternetExplorerを
Curlアプレット内で表示させることによって可能です。

詳細は以下のサンプルをご参照ください。

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

{import * from CURL.GRAPHICS.ACTIVEX}

{let example-url:String = “http://www.curlap.com”}
{let expl-xobj:ActiveXObject  =
    {ActiveXObject ProgId=“Shell.Explorer”}
}
{let expl-graphic:Graphic =
    {ActiveXGraphic expl-xobj}
}

{do
    {expl-xobj.Navigate example-url}
}

{let ob:OverlayBox =
    {OverlayBox
        {Fill background = expl-graphic.background},
        expl-graphic
    }
}

{value ob}

また、Curlの実行環境6.0以降ではEmbeddedBrowserGraphicを使用することで
簡単にHTMLページを表示させることができます。

詳細は、APIリファレンスの
[CURL.GUI.EMBEDDED-BROWSER]-[EmbeddedBrowserGraphic]
の項をご参照ください。

コントロールのdisabled?がfalse時に背景色を変更するには

◆ご質問◆
コントロールのdisabled?がfalseの場合、背景色やテキストの色を変更させないようにするには、どうしたらよいのでしょうか。

◆回答◆
“control-appearance-changeable?”をtrueに設定し、”control-content-background”や”disabled-color”に色を指定して下さい。
また、”disabled-text-sunken?”をfalseに指定して頂くことでフラットな文字として表示することも可能です。
(通常、enabled?=falseの文字は影付で表示されます)

deleteキーの制御

◆ご質問◆
RecordGridにおいて行を選択し、Deleteキーを押下すると行が削除されますが、この操作を抑制する方法あるのでしょうか。

◆回答◆
RecordGridUIクラスにKeyPressのイベントハンドラーを追加することで可能です。
Deleteキー押下時に処理を行わないようなロジックを追加する必要があります。

BigDecimalについて

【ご質問】
CurlにはJavaにおけるBigInteger、BigDecimalのようなAPIはあるのでしょうか。

【回答】
標準APIにはありませんが、オープンソースライブラリである WSDKORBにて
同様のAPIが提供されています。

WSDKの場合・・・パッケージ[COM.CURL.UTIL.BIGNUM]内のBigInt、BigDecimal
ORBの場合・・・パッケージ[COM.CURL.ORB.TYPE]内のBigInteger、BigDecimal

【コード例】

{curl 7.0 applet}
{curl-file-attributes character-encoding = “shift-jis”}
{applet manifest = “manifest.mcurl”,
    {compiler-directives careful? = true}
}

{import * from COM.CURL.UTIL.BIGNUM}

{value
    let a:BigDecimal = “13119107.3693184179”
    let b:BigDecimal = “202982856.3840000000”
    let c:BigDecimal = {a.divide b}

    {VBox
        {a.to-String}
        ,{b.to-String}
        ,{c.to-String}
    }
}

【実行結果】

13119107.3693184179
202982856.3840000000
0.0646316029 
 

WSDKのインストール方法は、以下をご参照ください。
http://developers.curlap.com/re-reference/25-data/107-wsdkweb-service-development-kit.html

ORBの詳細は、以下をご参照ください。
http://developers.curlap.com/re-reference/42-curl-orb-for-java06.html

また、CurlのVer.8より、標準APIにてDecimal型を利用することが可能になりました。
詳細はDeveloperCenter内の以下のページをご参照ください。
http://developers.curlap.com/re-reference/36-basic/741-decimal.html

入力文字の制限

【ご質問】
TextFieldにおいて入力文字を制限することは可能でしょうか。

【回答】
文字数に関してはプロパティ max-chars を使用することで制限可能です。

入力内容の制限を行う場合は、TextFieldを継承した独自クラスを
作成することで制限可能です。
アプリケーションギャラリー(Curl Apps Gallery)内に
参考になるアプリケーションがあります。

RecordGridにてエラー時に対象セルを色付けするには

◆ご質問◆
RecordGridにおいて、エラー時にエラー内容によって対象行、またはセルの色を変えることは可能でしょうか。

◆回答◆
StandardRecordGridCellなどを継承したカスタムセルを作成することで可能です。
また、Curlの実行環境6.0ではRecordGrid.row-background-specを使用することにより簡単に指定可能です。

Curl開発者ガイドの
[データの管理と表示]→[データレコードとグリッド]→[カスタムセルの作成]の項
をご参照ください。

CSVの入出力について

【ご質問】
CSVの入出力は可能でしょうか。

【回答】
Curlの実行環境5.0以降の場合、CSVファイルを利用してデータを処理する為のAPIが
標準で用意されています。これらのAPIを利用すると、CSVファイルを利用したデータの
入出力を行うことができ、CSVファイルをデータソースとして簡単に扱うことが可能になります。

詳細は、Curl開発者ガイドの
[データの管理と表示]→[外部ソースのデータの管理]→[レコードセットおよびデータファイルの使用]
の項をご参照ください。

動的に画面サイズを変更するには

◆ご質問◆
動的な画面サイズの変更は可能でしょうか。

◆回答◆
Curlが特許を取得しているエラスティック機能により画面を自動的に伸張、圧縮することが出来ます。

Curl開発者ガイドの
[グラフィカルユーザーインターフェース]→[エラスティックとページレイアウト]の項
をご参照ください。

音声について

◆ご質問◆
音声入出力のI/Fはあるのでしょうか。

◆回答◆
再生のみ標準で可能です。
ただし、音声ファイルはwavのみとなります。
独自のサウンドを作成する場合はToneGeneratorクラスを使用します。

Curl開発者ガイドの
[グラフィックスとレンダリング]→[サウンド]
をご参照ください。

メモリ管理について

【ご質問】
メモリ管理はどのようになっているのでしょうか。

【回答】
Curl 言語には、Javaと同様に、ガーベッジ コレクションという機能が備わっています。
定期的にガーベッジ コレクタによりメモリ領域がスキャンされ、
参照されないオブジェクトが占めるメモリ領域は自動的にガーベッジコレクタによって回収され、
後で再度割り当てることが出来るようになります。

詳細は、Curl開発者ガイドの
[基本概念 – 構文]-[メモリの管理]
の項をご参照ください。 

表示できるグラフの種類について

◆ご質問◆
表示出来るグラフはどのようなものがあるのでしょうか。

◆回答◆
棒グラフ、積上棒グラフ、折れ線グラフ、円グラフなどがあります。
Curlの実行環境4.0より、その他豊富なグラフ、グラフ設定が追加されました。
開発者によるカスタマイズもより簡単に出来るようになりました。

Curl開発者ガイドの[グラフ]の項をご参照ください。

クリップボードについて

◆ご質問◆
クリップボードとの連携性はあるのでしょうか?
(エクセルで選択した項目を表形式に貼り付ける等)

◆回答◆
特権アプレットであれば、Clipboardクラスが利用出来ます。
Curlの実行環境5.0までは、使用出来るデータはStringのみとなりますが、
Curlの実行環境6.0ではString、Url、UrlArray、Pixmap型のオブジェクトが使用できます。

また、Curlの実行環境5.0より、エクセルとRecordGrid間のコピー&ペーストが可能となりました。