バージョン 7.0 以前の Curl IDE をバージョン 8.0 にアップグレードする場合は、この章にある内容からバージョン 8.0 でアプレットが動作するために必要な項目を特定してください。新機能に関する情報は、「
バージョン 8.0 の新機能」を参照してください。バージョン 8.0 の新機能と新しい APIの概要がまとめられています。
バージョン 7.0 の Curl RTE(実行環境) は、数々の特徴を含んでいます。それらの特徴を以下に簡潔に記述しており、リンクからそれぞれの完全なドキュメントを参照できます。
- ガベージ コレクション フック
- Applet の強化
- オフライン アプレットの強化
Curl コントロールパネルに、新しくオフラインのタブが追加されました。Curl オフライン アプレットを参照する新しい Url の形式
curl://offline/ が実装されました。
- パッケージ ファイル同期の改善
- スプラッシュ スクリーン API
バージョン 7.0 には、アプレットの起動に著しく時間がかかる時に便利な
スプラッシュ スクリーン のサポートが含まれています。
- Display API
バージョン 7.0 では、特権アプレット、非特権アプレットのいずれでも
Display API が使用できるようになりました。これは、非特権アプレットが、利用可能なモニタのスクリーン サイズや解像度などのような情報を取得することを許可します。
- Graphic-to-Pixmap
- アプリケーション パフォーマンスの強化
バージョン 7.0 では、コード コンパイラの登録アロケーションを改良することにより、アプリケーションのパフォーマンスの向上を実現します。
- コントロールの新しい外観
バージョン 7.0 では、コントロールの既定の外観を更新しました。このドキュメント内のサンプルで使用されているコントロールで確認することが出来ます。
- 高品質なレンダリング
バージョン 7.0 から、高品質のレンダリング モードをサポートするプラットフォーム上では、高品質レンダリングモードを既定のレンダリング モードにしました。高品質のレンダリング モードは、アンチエイリアス、優れた曲線の処理、回転したイメージのレンダリング機能、部分透過や、アルファ混合の機能を提供します。高品質なレンダリングの為に、明示的に
set-rendering-mode を設定する必要はありません。現時点では、高品質なレンダリング モードは、Windows プラットフォームと Mac プラットフォーム上でのみサポートされます。
- ネイティブアプリケーションのようなアプレットの動作
アプレットが、まるでプラットフォーム用に書かれたアプリケーションのようにローカル環境で機能できるようにする為に、OCC アプレットの機能が拡張されました。アプレットは、インストールすることも、アンインストールすることも出来ます。またスタート メニューや、デスクトップ、タスクバー アイコンから実行させることも出来ます。
随時接続コンピューティング (OCC) を参照してください。
- Curl アプレットから EmbeddedBrowserGraphic 内のスクリプトを呼び出すことが出来ます。
- スタイル化されたコントロールとスタイル シートの統合
スタイル化されたコントロールとスタイル シートは、バージョン 6.0 では、外部ライブラリとして提供されていましたが、バージョン7.0では、Curl RTE に統合されました。
- 非特権アプレットのCDK サポート
- CDK の暗号化されたSQLite データベースファイルサポート
Curl データキットは、暗号化されたデータベースファイルに対する SQLite API をサポートします。SQLiteDatabase.default と SQLiteDatabase.attach への新しいキーワード引数 encryption-type と key 、新しいメソッド SQLiteDatabase.set-key と SQLiteDatabase.rekey に注目してください。
- Eclipse-based IDE for Curl
バージョン 7.0 の IDE には、Curl アプリケーションの開発にEclipse IDE を利用できるようにする Eclipse プラグインが含まれています。
バージョン 6.0 の Curl RTE(実行環境) は、数々の特徴を含んでいます。それらの特徴を以下に簡潔に記述しており、リンクからそれぞれの完全なドキュメントを参照できます。
Mac OS X のユーザーは、このバージョンの Curl RTE から利用することができるようになりました。
Mac プラットフォームをサポートするために、いくつかの Curl API が新たに追加されました。全てのプラットフォームで動くアプリケーションの作成についての詳細は、「
クロス プラットフォーム アプレットの作成」 を参照してください。
バージョン 6.0 GUI ツールキット は スタイル化されたシート と "スキン" が適用できるコントロール に対して低レベルのサポートを行うための機能追加が Curl API に対して行われています。この機能を利用するためには、Curl の Webサイトを訪れ、「
スタイル化されたコントロールのライブラリ」をダウンロードしてください。
このライブラリを使い、コントロールの "スキン" として機能するイメージを提供することができるようになり、色や他の属性を用いてコントロールの見た目を指定することができるようになります。これにより、ボタン、タブ、そして他の GUI コントロール の外観をよりリッチに作成することができるようになります。バージョン 6.0 で行われたレンダリング機能の改善は、コントロールの外観をよりよく見せる為のサポートを行います。ライブラリには、スタイル化できるコントロール、新しい既定の外観、それに Curl スタイル シート の実装が含まれています。
以下のような、新しい機能が バージョン 6.0 に追加されています。
GUI ツールキットは、以下の機能拡張を含んでいます。
- Curl アプレット ユーザーによるイメージのクリップボードへの貼り付けのサポート。
- テキスト コントロールで選択されたテキストの「元に戻す」(ctrl + z)、「やり直し」(ctrl + y)、およびドラッグ アンド ドロップのサポート。「テキスト コントロール」 を参照してください。
- ユーザーが用紙サイズおよびその他のプリンター属性を設定できる、ページ設定ダイアログの追加。「印刷」 を参照してください。
- メニューがコントロールとして実装され、メニュー ボタン コントロールが追加されました。「メニュー」 を参照してください。
-
スクロール バーがコントロールとして実装されました。「
スクロール バー」 を参照してください。
- GUI オブジェクトはドロップ シャドウをサポートするようになりました。「ドロップ シャドウの指定」 を参照してください。
- GUI オブジェクトは外側マージンをサポートするようになりました。「外側マージンの指定」 を参照してください。
- オープン コントロール API が改良されました。「オープン コントロール」 を参照してください。
- RecordGrid が、表示されたレコード セットの情報から計算された行の背景をサポートするようになりました。「計算による行の背景」 を参照してください。
-
GuiManager.start-drag-drop の パラメータ
target の型が
any から
Visual へと変更されました。以前のバージョンでは、
Visual 以外の型を使用した場合、実行時にエラーがスローされていました。この変更によって、コンパイル時にこのエラーが検出されるようになりました。もしあるオブジェクトがコンパイル時に正しい型になっているかわからない場合は、パラメータの型を
Visual にキャストしてください:
{{get-gui-manager}.start-drag-drop obj asa Visual}
バージョン6.0はCurl言語に対する以下の変更点も含んでいます:
Curl IDE には、多数の新しい機能が追加されました。
- UDV でページをブックマークすることができます。「ブックマーク タブ」 を参照してください。
- IDE デバッガには、次の新しい機能が追加されました。
- コード内の値を条件として動作するブレイク ポイントを作成することができます。「条件つきブレイク ポイント」 を参照してください。
- オブジェクトの上にカーソルを置くことにより、デバッガで停止したアプレット内の変数の値と式を見ることができます。「値の表示」 を参照してください。
- カーソルでマークされた行まで、停止したアプレットの実行を続けることができます。「指定された行まで継続」 を参照してください。
- IDE のディプロイメント操作を自動化できます。「自動ディプロイメント」 を参照してください。
バージョン 5.0 では、Curl統合開発環境 (IDE) およびビジュアル
レイアウト エディタ (VLE : Visual Layout Editor) の機能が拡張されました。
また、GUI Toolkit の新しいコントロールそして新しいデータアクセス API が追加されました。
Curl RTE は
Mercury 社提供の
QuickTest Professional を使用する自動テストをサポートします。
Curl RTEは重要な更新がないかを定期的にチェックする自動アップデート機能が追加されました。 この機能はオプション機能であり、コントロールパネルにて有効化することができます。
Curl 言語のアプレットでは、Mercury QuickTest Professional バージョン 9 (別個購入)
により
自動テストを実行することができます。
テスト スクリプトを記録し実行することにより、機能テストおよび回帰テストを自動化することができます。
GUI Toolkit の API は、テスト可能なアプレットを簡単に作成するため拡張されました。
GUI Toolkit の標準コントロールは、スクリプトのオブジェクト モデルをサポートするため機能強化されました。
Curl RTE には、重要な更新を定期的に確認してインストールする自動更新機能が追加されました。この機能はオプションで、Curl コントロール パネルから有効にすることができます。
このセクションでは、バージョン 5.0 で変更された API の概要を説明します。
- 新しい IDE の起動ページから、ドキュメント、ツール、および最近開いたプロジェクトやファイルにすばやくアクセスできるようになりました。
- VLE パレットの新しい[メニュー] タブを使用して、メニューやメニューに関連するオブジェクトをレイアウトに追加できます。「レイアウトにおけるメニューの使用」を参照してください。
- VLE パレットの新しい [形状] タブを使用して、レイアウトに形状を追加できます。「レイアウトにおける形状の使用」を参照してください。
- VLE コントロールパレットの新しいボタンを使用して、VLE レイアウトで TreeControl を使用できます。「TreeControl のプロパティの編集」を参照してください。
- VLE では、入力メソッドの動作を制御する次のプロパティが使用できます。
これらのオプションは、キーボード入力を通常受け取るコントロールのプロパティ シートと、Dialog、HttpForm などの一般にはコントロール グループを保持するコンテナに含まれています。これらのオプションが含まれたプロパティ シートを持つオブジェクトは、次のとおりです。
- VLE 複合オブジェクト機能を使用すると、VLE でグラフィック階層を構築できます。これらのグラフィック階層は、VLE パレットに追加したり、VLE レイアウトで組み込みの VLE オブジェクトのように使用したりできます。「複合オブジェクトの構築」を参照してください。
ここでは、リリース 4.0 の Curl® 実行環境 (RTE)、Curl言語と API、および Curl 統合開発環境 (IDE) の新しい機能を説明します。
- 4.0 RTE では、グラフィカル オブジェクトをページ境界にまたがって分割するためのアルゴリズムの改善など、ドキュメントの印刷機能が改善されました。
- エンド ユーザーは、Windows® エクスプローラから Curl アプレットへファイルをドラッグ アンド ドロップできるようになりました。「ファイルのドラッグ」を参照してください。
- Web ブラウザ ウィンドウに常駐しない、高度なアプリケーションを構築し起動できる機能が搭載されました。この独立型アプレット ファイルのファイル拡張子は .dcurl で、text/vnd.curl.dcurl MIME 型を使用します。「独立型アプレット」を参照してください。
- 4.0 RTE は、署名付きアプレットをサポートします。「コード署名」を参照してください。
- リリース 4.0 のコンパイラでは、変換リソースを指定せずに lmessage や hlmessage などのローカライゼーション マクロを使用できます。3.0 RTE でアプリケーションを実行する場合は、変換リソースを指定する必要があります。
-
try および
catch に加えられたコンパイラの変更により、
try でのフロー制御のサポートが向上しました。
try ステートメントは、
finally 本体ではなく、その本体と
catch 句の本体に基づいて値を生成します。
switch と同様、値が生成されるのは、try 本体の最後のステートメントとすべての catch 本体が値を生成する場合、例外をスローする場合、または戻り値を返す場合だけです。
-
1 つ以上の
next 句は、
continue ステートメントのターゲットとして使用できます。
continue ステートメントは、それ自体がある本体の最後に制御を移します。次の
next ステートメントか、
next ステートメントがそれ以上存在しない場合はループの最後に制御が移ります。
- Curl 4.0 言語コンパイラでは、allow-implicit-downcasts? = true の場合、スーパークラスからサブクラスへの暗黙的なダウンキャストを許可します。コンパイラ ディレクティブ」を参照してください。
次の機能が、バージョン 4.0 の Curl™ API に追加されました。詳細ドキュメントを参照するには、リンクをクリックしてください。
次に示すパッケージは、全く新しいパッケージです。
次に示す API が RecordGrid と関連クラスに追加され、より柔軟性が高まりました。
RecordGrid の行や列のダブルクリック、または Enter キーの操作に応じて、RecordGrid からアクション イベントを起動できるようになりました。この動作は ListBox や TreeControl の動作に似ています。
次の機能は、独立型アプレットをサポートするために追加されました。これらの機能は、あらゆる種類のアプレットでインポートして使用可能なライブラリを作成する場合にも役立ちます。
新しくパラメータ化された両端キュー クラス Dequeue-of が、CURL.LANGUAGE.CONTAINERS パッケージに追加されました。
HTTP "charset" パラメータにアクセスできるようになりました。
さまざまなスタイルで線を描画するためのサポートが追加されました。
印刷制御を強化する API が追加されました。
ニーモニックを使用したボタン ラベルをサポートする新しいクラスが追加されました。複数の標準ボタンが導入されました。ボタンの外観を制御する新しいオプションが追加されました。
Label
mark-mnemonic
ensure-min-size
ok-button
cancel-button
yes-button
no-button
apply-button
done-button
CommandButton.label-inset
CommandButton.show-focus?
RadioButton.label-inset
RadioButton.show-focus?
CheckButton.label-inset
CheckButton.show-focus?
disabled-text-sunken?
disabled-color
StringDataModelMovableRange.move-point-to-previous-paragraph-start
StringDataModelMovableRange.move-point-to-next-paragraph-start
StringDataModelMovableRange.widen-to-paragraph
StandardRichTextAreaUI.create-main-panel
StandardRichTextAreaUI.create-formatting-panel
StandardRichTextAreaUI.create-formatting-panel-elements
Tooltip API にいくつかの機能が追加されました。
View API に次の機能が追加されました。
次のイベント プロパティがパブリックになりました。
GuiWindowEvent.event-time
CompositionChangeEvent.string
CompositionChangeEvent.reading-string
CompositionChangeEvent.caret-index
CompositionChangeEvent.clauses
PointerEnvelopeEvent.contents
PointerScroll.axis
PointerScroll.amount
- 新しい careful コンパイラ ディレクティブを使用できます。IDE は、作成するすべてのファイルにこのディレクティブを挿入します。
- Curl IDE ドキュメント ビューアに、ドキュメントの全文検索などの新しいナビゲーション機能および検索機能が加わりました。「ナビゲーション ペイン」を参照してください。
- IDE プロファイラを使用して、Curl言語アプリケーションのパフォーマンスを分析できます。「アプレットのプロファイリング」を参照してください。
- IDE の http 監視機能には、Curl言語アプレットが生成する http トラフィックを監視するメカニズムがあります。「Http 監視」を参照してください。
- IDE のソース コード管理には、Windows プラットフォームで広く使用されているソース コード管理システムへのインターフェイスがあります。「ソース コード管理」を参照してください。
- IDE エディタで複数のプロジェクトを開くことができるようになりました。
- ビジュアル レイアウト エディタ (VLE) で複数のファイルを開くことができるようになりました。
- ビジュアル レイアウト エディタ (VLE) のパレット拡張機能を作成できるエディタが Curl IDE に搭載されました。このエディタには、IDE の [ツール] メニューの [VLE 機能拡張エディタ] を選択してアクセスできます。
新機能はすべて追加機能であり、既存のクラスはほとんど変更されていないため、4.0 アプレットを 5.0 にアップグレードするのは簡単です。ただし、次に説明する 2 つの例外があります。
RecordGrid および関連クラスの実装が大幅に変更されました。IDE で提供される「
オープン ソース コード」の
RecordGrid または関連クラスの変更バージョンを作成した場合は、まず新しいソース コードから、変更を再実装しなければならない場合があります。
バージョン 3.0 のアプレットを バージョン 4.0 にアップグレードする場合は、次のセクションをよく読み、必要な変更内容について確認してください。
プロジェクトを新しい API バージョンに簡単にアップグレードできるように、IDE の [プロジェクト] メニューに [API バージョンの変更...]コマンドが追加されました。このコマンドを使用すると、検索と置換がグローバルに実行されるため、現在のプロジェクトを構成するソース ファイル内の API バージョンの文字列を簡単に更新できます。プロジェクト ファイル自体も更新されます。
Exception 階層が変更されました。
Throwable は
Exception の異名になり、
Exception.message が
Exception.value に置き換わります。マクロ
api-version-switch を使用し、3.0 と 4.0 の両バージョンの API についてコードが例外を適切に処理できます。次のコード例を参照してください。
catch e:IOException do
{api-version-switch
case "4+" do
{popup-message e.message}
else
{popup-message e.value}
}
ファイルの読み書き用、および Curl IDE で編集されたファイル用の既定の文字エンコードが
utf8 になりました。以前の既定の文字エンコーディング (windows-latin-1) を使用したバージョン 3.0 のソース コード ファイルには、新しい既定の文字エンコーディング (utf8) では無効な文字が含まれている可能性があるため、実行時にトランスコーディング エラーが発生します。改行しない空白文字が含まれている API ドキュメントから署名を貼り付けると、このような状況が発生します。アプリケーション コードで
read-open や
write-open などの API 呼び出しを使用してテキスト ファイルの読み取りや書き込みを行う場合で、バージョン 3.0 の既定の文字エンコーディングに従う場合は、バージョン 4.0 では文字エンコーディングを明示的に指定する必要があります。
IDE を使用してバージョン 3.0 のソース コード ファイルを編集する場合は、ファイルに含まれている文字が ASCII 文字だけの場合を除き、
curl-file-attributes を使用して文字エンコーディングを指定する必要があります。
バージョン 4.0 のコンパイラは、問題を引き起こす可能性のある型変換の報告について、より厳密になりました。また、バージョン 3.0 のコンパイラで使用できた一部のコンストラクションが拒否されます。バージョン 3.0 では
asa が不要であった場合でも、バージョン 4.0 では必要となる場合があります。
バージョン 4.0 のコンパイラは、文字列から列挙体への暗黙的な変換をレポートします。
次のコードはバージョン 3.0 では使用できましたが、バージョン 4.0 では拒否されます。定義されている
FontWeight に対応しない値がプロシージャに渡される可能性があるため、型エラーが発生します。値が正しいことがわかっている場合は、
asa FontWeight を追加してコンパイラに通知します。
{define-proc {test x:String}:FontWeight
{return x}
}
{test "bold"}
次の場合は、どちらのバージョンでも許可されます。コンパイラは、文字列が使用可能な値を持つことを識別できます。これは、文字列形式は短く、より簡単に読み取り/書き込みを行えるためです。
{define-proc {test2}:FontWeight
let x:String = "bold"
{return x}
}
{test2}
たとえば、次のコード
{let mistake:bool =
{if-non-null {String "oops"} then true else false}
}
では、
SyntaxError: null を String と比較できません。 null と String 値の両方を受け入れる場合は #String を使用します。 が発生します。
Curl 4.0 言語コンパイラは、Null になる可能性のあるプロシージャ型が Null にはならないプロシージャ型と比較される場合にも、
SyntaxError を生成します。
バージョン 3.0 以前の API で使用できた一部の GUI Toolkit クラスが改善され、バージョンが変わりました。古いバージョンは、
CURL.GUI.OLD というパッケージを使用して、バージョン 4.0 API でも使用できます。古いバージョンの使用は推奨されておらず、将来のバージョンで削除される予定です。古いクラスのドキュメントは、バージョン 4.0 の IDE には含まれていません。ただし、バージョン 3.0 と 4.0 の両方の IDE がインストールされている場合は、「
[ファイル] メニュー」の [新規ドキュメント ビューア] から 3.0 ドキュメント ビューアを開いて、3.0 API リファレンスを表示できます。
次のクラスが含まれます。
3.0 TabContainer と関連クラス
- TabContainer
- TabPane
- TabContainerUI
- StandardTabContainerUI
- TabPackingPolicy
- TabPlacement
3.0 TreeControl と関連クラス
- TreeControl
- BaseTreeNode
- TreeNode
- TreeNodeState
既存のバージョン 3.0 のアプレットがあり、それをバージョン 3.0 と 4.0 の両方の API で実行できるようにするには、次の形式のインポートをアプレットに追加します。
{api-version-switch
case "4.0" do
{import TreeControl, TreeNode from CURL.GUI.OLD, override? = true}
}
古いクラスをすべてインポートすることも、必要なクラスだけをインポートすることもできます。詳細については、
import を参照してください。
次のセッターは 4.0 API から削除されました。これらのセッターは重複しています。これらのプロパティは、UI やヘルパー オブジェクトではなくコントロールに対して設定できます。
setter public StandardComboBoxUI.dropdown-height
setter public StandardDropdownListUI.dropdown-height
setter public abstract ComboBoxUI.dropdown-height
setter public abstract DropdownListUI.dropdown-height
setter public StandardDropdownHelper.dropdown-height
setter public StandardDropdownHelper.dropdown-width
4.0 API では、メニュー項目およびボタンにラベルを表示するための
Label クラスが新しく導入されました。ラベルとして指定された
String は、
Label に自動変換されます。ラベル文字列のアンパサンド (&) 文字は、その次の文字をラベルのニーモニックとしてマークします。ニーモニック文字は、ボタンまたはメニューで下線付きで表示されます。
メニュー項目およびコントロールの text-breakable? の既定値は、3.0 では true でしたが、リリース 4.0 では false になりました。ラベルを複数行に折り返す場合は、コントロールで text-breakable? = true を指定する必要があります。
Copyright © 1998-2019 SCSK Corporation.
All rights reserved.
Curl, the Curl logo, Surge, and the Surge logo are trademarks of SCSK Corporation.
that are registered in the United States. Surge
Lab, the Surge Lab logo, and the Surge Lab Visual Layout Editor (VLE)
logo are trademarks of SCSK Corporation.