ざつだ ん。 (2014/08/01~)
2014/08/12
Change Create Order
現在のバージョンは 2.60 です。バイナリ形式フォームも読み込めるようになりました。
TEditor ver2.52 Unicode Edition
4年ほどホッタラカシでしたが、メンテを再開しました。現在のバーションは rel.20 です。
- ワードラップが正しく表示されるようになった
- 64bit アプリケーションでも使えるようになった
- Delphi のバージョン毎にパッケージが用意されるようになった
- Km さん作の TCppFountain が同梱されるようになった (Thanks! Km さん!!)。
変更点をざっくり言えばこんな感じです。
[Explorer] プレビューハンドラ
TEditor がマトモに動作するとこういう事もできる訳で。プレビューハンドラ (Explorer の [整理 | レイアウト | プレビュー ウィンドウ] で表示される奴) は Explorer 拡張の一種で実体は DLL です。
TEditor Unicode Edition の Samples フォルダにソースコードが入っていますのでどしどし改良してお使い下さい。なお、TEditor に付属のものには C++ 用のプレビューハンドラも組み込まれています。
※ 64bit Windows をお使いの場合には 64bit アプリケーションでビルドして組み込んで下さい。
無名メソッドを使った局所関数 (Delphi Programming)
Facebook で出た話題の関連ですが、関数内で「この処理のために変数が必要だけど、ここでしか使わないのに var に変数を書きにいかなきゃならない!」というのは以下のような書き方で回避できます。
procedure TForm1.Button1Click(Sender: TObject);
var
s: String;
begin
s := 'TEST';
(procedure
var
a: Integer;
b: Integer;
begin
a := 1;
b := 2;
s := s + IntToStr(a+b);
end)(); // ここの () が重要
ShowMessage(s); //TEST3 と表示される
end;
|
()(); ブロック内に処理を記述するのがミソです。"Delphi(Object Pascal)でcaseを式にする (山本隆の開発日誌)" を読んでこの記述ができる事に気付きました。
2014/08/17
TEditor ver2.52 Unicode Edition を C++Builder にインストールする
私が所持している最新の C++Builder は XE2 なので、XE2 で説明してみます。他のバージョンでもインストール手順に大差はないハズです。
- まず [新規作成 | パッケージ] でプロジェクトグループと実行時パッケージを作成する。
- [プロジェクトマネージャ] で ProjectGroup1 になっている所を右クリックし、[プロジェクトグループに名前を付けて保存]。
- パッケージファイル名: rtlHEditor_252U_CXE2.cbproj
- プロジェクトグループファイル名: HEditor_252U_CXE2.groupproj
Delphi のパッケージと名前がカブらないようにバージョン名の前に C を付けている。保存先は TEditor のアーカイブを解凍した先の Packages フォルダ。
- [プロジェクトマネージャ] で rtlHEditor_252U_CXE2 になっている所を右クリックし、[プロパティ] (またはメインメニューから [プロジェクト | プロパティ])。
- [Delphi コンパイラ] の [ユニットスコープ名] に vcl を追加 (XE 以前には不要)。
- [説明] の [説明] に "TEditor ver 2.52 Unicode Edition - Runtime Package (C++)"、[用途に関するオプション] は [実行時のみ] にチェック。[OK] を押してプロジェクトオプションダイアログを閉じる。
- [プロジェクト | プロジェクトに追加] で Source フォルダにある以下のファイルを追加する。
- CppFountain.pas
- DelphiFountain.pas
- EditorFountain.pas
- heClasses.pas
- heColorManager.pas
- HEditor.pas
- HEdtProp.pas
- heFountain.pas
- heRaStrings.pas
- heStrConsts.pas
- heStringList.pas
- heUtils.pas
- HPropUtils.pas
- HStreamUtils.pas
- HTMLFountain.pas
- htSearch.pas
- XMLFountain.pas
Delphi のパッケージをインストールしていると、[プロジェクトマネージャ] の requires に Delphi 用パッケージが含まれてしまうので requires から削除しておく。
- [プロジェクトマネージャ] で rtlHEditor_252U_CXE2 になっている所を右クリックし、[ビルド] (2009 は [再構築])。コンパイルエラーになるようなら、手順に漏れがあるのでちゃんと確認する事。
- 実行時パッケージ (rtlHEditor_252U_CXE2) に問題がなければ、設計時パッケージを作る。[プロジェクトマネージャ] で HEditor_252U_CXE2 になっている所を右クリックし、[新規プロジェクトを追加]。パッケージを追加する。
- [プロジェクトマネージャ] で Project1 になっている所を右クリックし、[名前を付けて保存] (またはメインメニューから [ファイル | 名前を付けて保存])。
- パッケージファイル名: dclHEditor_252U_CXE2.cbproj
保存先は TEditor のアーカイブを解凍した先の Packages フォルダ。
- [プロジェクトマネージャ] で dclHEditor_252U_CXE2 になっている所を右クリックし、[プロパティ] (またはメインメニューから [プロジェクト | プロパティ])。
- [Delphi コンパイラ] の [ユニットスコープ名] に vcl を追加 (XE 以前には不要)。
- [Delphi コンパイラ | コンパイル] の [コンパイラに渡す追加オプション] に -LUDesignIDE を追加。
- [説明] の [説明] に "TEditor ver 2.52 Unicode Edition - Designtime Package (C++)"、[用途に関するオプション] は [設計時のみ使用可能] にチェック。[OK] を押してプロジェクトオプションダイアログを閉じる。
- requires を右クリックし、[参照の追加]。$(BDSCOMMONDIR)\dcp にある rtlHEditor_252U_CXE2.bpi (コンパイル済み実行時パッケージ) を追加する。
$(BDSCOMMONDIR) は [ツール | オプション] の [環境変数] で確認できる。
- [プロジェクト | プロジェクトに追加] で Source フォルダにある以下のファイルを追加する。
- FountainEditor.pas
- Heditreg.pas
- HPropert.pas
- Hreplfm.pas
- Hschfm.pas
- HStrProp.pas
- HViewEdt.pas
途中、フレームワークの選択ダイアログが出るので [はい] を押す (XE2 以降)。
Delphi のパッケージをインストールしていると、[プロジェクトマネージャ] の requires に Delphi 用パッケージが含まれてしまうので requires から削除しておく。
- 一旦 [ファイル | すべて保存]。この時「プロパティがない」と言われたら [キャンセル] ボタンを押す。
- [プロジェクトマネージャ] で dclHEditor_252U_CXE2 になっている所を右クリックし、[インストール]。
コンパイルエラーになるようなら、手順に漏れがあるのでちゃんと確認する事。
こんな感じで C++Builder にインストールできます。ヘッダファイルは Source フォルダに生成されていると思うので、実際に使う際には Include パスに追加するなりしてください。
TEditor の Fountain
TDFMFountain を作ったので Change Create Order のプロパティエディタ部に TEditor が使えるようになりました。TXMLFountain を作ったのでプレビューハンドラで RAD Studio の主要なファイルをプレビューできるようになりました…名前は未だに PascalPreview.dll なのですが。