ざ つ だ ん 。 (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 なのですが。