2007-10-15[なでしこ]【未完成】(TSonEdit)vnakoへのコンポーネントの追加方法 
どうもzuzuです。
一応ですが、vnakoへのコンポーネントの追加が出来ましたので、ここで少しばかりやりかたを書こうと思います。
それではレッツゴー!
■その一
vnako_function.pasのuses節へ追加したコンポーネント名を追加する。
■その二
const節の「VCL_GUI_BUTTON = 0;」とか書いている部分を書き加える。
今回は「VCL_GUI_ULABEL = 47;」に下に数字が出来るだけ被らないようにと「VCL_GUI_SONEDIT = 99;」を追加しました。
■その三
functionのvcl_createに書き加えイベントを追加する。
今回の場合は「THiEdit」のイベントの下に追加しました。
VCL_GUI_SONEDIT :
begin
o := TSonEdit.Create(Bokan);
with TSonEdit(o) do begin
OnClick := Bokan.eventClick;
OnDblClick := Bokan.eventDblClick;
OnChange := Bokan.eventChange;
OnKeyDown := Bokan.eventKeyDown;
OnKeyPress := Bokan.eventKeyPress;
OnKeyUp := Bokan.eventKeyUp;
OnDragOver := Bokan.eventDragOver;
OnDragDrop := Bokan.eventDragDrop;
end;
end;
ちなみにここで実際にコンポーネントの生成をしているので、初期設定なども追記しても良いと思います。
■その四
functionのvcl_getpropに書き加える。
まあ実際、これはテキストプロパティを使えるようにするものです。
VCL_GUI_SONEDIT : res := TSonEdit(obj).Text;
と書き加えました。
■その五
functionのvcl_commandにコマンドを追加する。
procedure _VCL_GUI_SONEDIT;
var e: TSonEdit;
begin
e := TSonEdit(obj);
if cmd = '文字書体GET' then begin Result := hi_var_new; hi_setStr(Result, e.Font.Name); end else
if cmd = '文字書体SET' then begin setFontName(e.Font, hi_str(v)); end else
if cmd = '文字サイズGET' then begin Result := hi_var_new; hi_setInt(Result, e.Font.Size); end else
if cmd = '文字サイズSET' then begin e.Font.Size := hi_int(v); end else
if cmd = '文字色GET' then setRes(Color2RGB(e.Font.Color)) else
if cmd = '文字色SET' then e.Font.Color := RGB2Color( hi_int(v) ) else
if cmd = '背景色取得' then setRes(Color2RGB(e.Color)) else
if cmd = '背景色設定' then e.Color := RGB2Color(hi_int(v)) else
if cmd = 'UNDO' then e.Undo else
if cmd = 'REDO' then e.Redo else
if cmd = 'COPY' then e.TxtCopy else
if cmd = 'CUT' then e.Cut else
if cmd = 'PASTE' then e.Paste else
if cmd = 'SELECTALL' then e.SelectAll else
if cmd = 'POPUP' then e.PopupMenu := TPopupMenu( hi_int(v) ) else
//if cmd = 'GETROW' then setRes(0) else
//if cmd = 'GETCOL' then setRes(e.SelStart) else
//if cmd = 'SETROW' then else
if cmd = '編集設定' then e.ReadOnly := not hi_bool(v) else
if cmd = '編集取得' then Result := hi_newBool(not e.ReadOnly) else
//if cmd = 'IME取得' then Result := hi_newStr(e.GetImeStatus) else
//if cmd = 'IME設定' then e.SetImeStatus := setControlIME(hi_str(v)) else
;
end;
まあこんな感じに追加してみました。
どこが未完成かというとこれはTSonEditの場合のみのことで、さらにTSonEditもうまく実装できていません。
またこれから先、コンポーネントを追加した場合は同じように書こうと思います。
それでは!
2007-10-11[なでしこ]タダな[なでしこ]タダなDelphi6 Personalでなでしこコンパイル! 
どうもzuzuです。
今回はDelphi6 PersonalでXPスタイルを適用する方法を書こうと思います。
その方法はずばり、マニフェスト(manifest)ファイルを作成する方法です。
マニフェストファイルとは……どうやらバージョン情報などを書くファイルの様みたいですが、実際はよくわかりません。
ただそれを作ることでXPスタイルに対応できるということだけは理解しています。
まずはテキストエディタで以下の内容を打ち込むか、コピー&ペーストして下さい。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="CompanyName.ProductName.YourApp"
type="win32" />
<description>Description</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*" />
</dependentAssembly>
</dependency>
</assembly>
そしてこれをXPスタイルにしたい実行ファイル名&「.manifest」で保存して下さい。
例:enako.exeの場合は「enako.exe.manifest」で保存します。
そしてこれをXPスタイルにしたい実行ファイルを同じ所に置けばその実行ファイルのGUIにはXPスタイルが適用されます。
まあTXPManifestとは少し違う部分が出てくるかも知れません、僕が確認した所ではなでしこエディタのパネルの背景色がグレーになってしまいました。
皆さんは出来たでしょうか?
それでは!
2007-10-07[なでしこ]タダなDelphi6 Personalでなでしこコンパイル!
どうもzuzuです。
少し前にバグ報告にdelphi6 personalでは動かんぞといってましたが、今日一日を使って再度挑戦してみました。
無料版であるDelphi6 Personalでのコンパイルの結果は……成功であり失敗です。
vnakoは出来たのですが……nakopadではTXPManifestが必要な為、完全には無理でした。
まあvnakoが編集できるようなったので万々歳ですが。
さてそれでは、Delphi6 Personalでの環境整備(コンポーネントのインストール)方法をどうぞ――
これはdelphi6 personalでの導入方法です。
括弧の中は入手先、httpから始まらないのは開発フォルダの中です。
vnakoで使うモノは全てnakopadでも必要です(たぶんですが)。
「-」が先頭にあるモノはそのすぐ上の「-」がないコンポーネントで必須のモノなので先にインストールして下さい。
■vnako
UIWebBrowser(vnako_unit\UIWebBrowser)
TEditor(http://homepage3.nifty.com/~katsuhiko/delphi.html *最新版をダウンロード)
- PerlFountain(http://homepage3.nifty.com/~katsuhiko/delphi.html)
- CppFountain(http://homepage2.nifty.com/Km/download.htm)
- JavaFountain(http://homepage2.nifty.com/Km/download.htm)
- NadesikoFountain(vnako_unit\NadesikoFountain.pas)
- HimawariFountain(vnako_unit\HimawariFountain.pas)
GLDPNG(http://www.delphianworld.com/ *Graphics&Multimediaを選択して下の方にスクロール)
pngimage(http://pngdelphi.sourceforge.net/ *Object Pascal Componentのすぐに下のDownloadにある。)
TntUnicodeControls(http://tom.osdevel.org/index.php/projekte/tnt-unicode-controls/)
■nakopad
TEditorEx(http://homepage2.nifty.com/Km/download.htm *Yellow 3.03以降をダウンロード)
- OLE Drag & Drop(http://homepage3.nifty.com/~katsuhiko/delphi.html)
TTrackBox(http://www.vector.co.jp/soft/win95/prog/se189215.html)
■注釈
◆UIWebBrowserの導入方法。
■ 「要求したパッケージ 'vclie' が見つかりません」のエラーが発生した場合 
http://homepage1.nifty.com/MADIA/delphi/delphi_bbs/200506/200506_05060112.htmlの怪傑ナガネギマンさんの書き込みの通りに入れ替えて下さい。
それでもエラーが出た場合は(出ると思います)「dclusr60;」を「dclusr;」にしてみて下さい。
◆その他諸々
他にもDsgnIntfをDesignIntfに置き換えなくちゃいけない箇所もあったような気がします。
また、nakopadのTXPManifestはDelphi7からの標準コンポーネントのため、ネットには出回っていなかったのでdelphi6 personalには実装できませんでした。
またTntUnicodeControlsですが、http://aoi-project.com/nadesiko/dev/wiki/index.php?%A5%B3%A5%F3%A5%DD%A1%BC%A5%CD%A5%F3%A5%C8にあるものはDelphi6 Personalでは対応していなかったようでしたので、Delphi6 Personal対応版がある外国サイトから拾ってきました。
さてコンポーネントインストールは完了してエラーが出ずにnakopad.dprおよびvnako.dprを実行できたでしょうか?
たぶん出来ていると思います。
■nakopadのコンパイル方法(不完全版)
nakopadはTXPManifestを使用して作ってあるみたいですが、これを無効化させます。
方法は簡単、uses節からXPManを消して下さい。
さらにプロジェクト→オプションからプロジェクトオプションを開き、「ディレクトリ/条件」タブの検索パスに「vnako_unit\」および「nakopad_unit\」を追加して下さい。
またHEditorが二重とか言うエラーが出た場合は、「ValEdit, HEditor;」を「ValEdit;」に変更して下さい。
■vnakoのコンパイル方法
プロジェクト→オプションからプロジェクトオプションを開き、「ディレクトリ/条件」タブの検索パスに「vnako_unit\」を追加して下さい。
■まとめ
出来ましたか? 僕は出来ました。ただTXPManifestを使用していないため、nakopadがXPスタイルでは表示されませんが。
それでは!