Windowsオリジナルコンポーネント
エディタコンポーネント TSonEdit
種別:フリーウェア
動作環境:XPsp2,Vista,7
対応IDE Delphi6,7 Visual C++,C#,VB (ActiveX)

TSonEditは日本語の文字入力、編集、ファイル入出力が可能なエディタコンポーネントです。
ダウンロード(2012/1/1)
お知らせ(2006/8/23)
主な特徴
- 違和感ない自然な操作感
- エディタにとって最も大切なのは、ストレスを感じさせることのない自然な操作感といえます。TSonEditは、この操作感の熟成に注力してきました。文書の作成・推敲において、思考を乱すことのない創作環境を実現できます。
- 高い安定性と信頼性
- エディタコンポをご自身のアプリケーションに組み込んで、ソフトを作り込んでいくとき、多大な時間とパワーを要します。そのぶん、コンポーネント自身にトラブルやバグが少ないことは重要なことです。 TSonEditはInfoStudioに実際に組み込まれ、たくさんのユーザーの方に使われており、細かいバグや不具合は修正されています。
- アスキーアート用機能を充実
- プロポーショナルフォントに対応し、マウス操作でピクセル単位の微調整が可能な矩形選択機能のほか、行間2ピクセル、フリーキャレット、全角・半角スペースの可視など、アスキーアートの作成に便利な機能を実装しています。
- 完全なUndo,Redo機能
- 矩形編集を含めたあらゆる編集操作と、ほとんどすべての編集メソッドについて、Undo機能が付与されています。編集後、Ctrl+Zを入力していくことで、完全に最初の状態に戻すことが出来、Redoを実行することでUndo前の状態に戻すことが出来ます。 ユーザーが独自に作成した編集メソッドに対しても、Undo機能を付与する手段を提供しています。
主な機能
プロポーショナルフォントの編集
矩形選択と編集(プロポーショナルフォント対応、ピクセル単位微調整可能)
キャレットの座標(カラム、行)取得
座標(カラム、行)指定によるキャレットのセット
URL、HTMLタグ、メールアドレス、引用行を任意の色で色別表示。クリッカブル対応。
改行コード、EOF、TAB、全角・半角スペースの可視表示
カスタマイズ性の高い検索&置換機能を標準装備
無制限Undo,Redo
行番号表示
フリーキャレット
キャレット連動&非連動スクロール機能
オリジナルデザインのルーラを表示可能
Drag&Dropによるテキストの移動 or コピー(OLE対応)
漢字再変換可能
左端ポイントによる行単位選択
行間設定
Tabのカラム数をカスタマイズ
各種表示色のカスタマイズ
座標指定によるキャレットのセット
インテリマウスのホイールスクロールに対応
右寄せ、センタリングなど基本文字列操作関数を用意
LF,CRだけの改行コードで作られたテキストの読み込みに対応
ActiveXコントロールを同梱(C++,C#,VBでご利用になれます)
ダウンロード
TSonEdit Ver1.38(ActiveXコントロール同梱)
DLしたらディレクトリ付きで解凍してください。
ソースコードを解凍するには、パスワードが必要です。TSonEditは、使用形態によっては、有償になる場合があります。
ActiveXコントロールは、現在いかなる使用条件においても無償となっています。詳しくは、ヘルプの「TSonEditについて」トピックをご参照ください。
Suzukaを利用するためにパスワードを教えてくださいという問い合わせが頻繁にあります。Suzukaで必要なActiveXコントロールにパスワードロックはかかっておりません。必要なファイルを今一度、ご確認お願い致します。なお、この手の問合わせには返信致しかねますのでご承知おきください。
有償でお使いになる場合の送金はこちら

Ver1.37->1.38の変更点
・ユニコード文字列のコピーペーストに対応。
・改行コードが不正なテキストの読み込みが正常にできるようにした。
・","がホットスポット認識可能でない不具合を修正。
Ver1.36a->1.37の変更点
・Windows7に対応。
・ルーラ高さを決めるプロパティRulerHeightを追加。
・Windows2000以前の動作保障を廃止(動作環境が無いため)。
・ソースコードのライセンス料金を31500円に改定(個人作者の方は今まで通り)。
Ver1.36->1.36aの変更点
・単語単位で選択するためのWordSelメソッドを追加。
・一部の日本語ドメインが正しく認識されなかった不具合を修正。
・改行で分割されているHTMLタグを正しく色分けできるようにした。
・「"」付きのmailアドレスを正しく認識できるようにした。
・Printtext2で行番号指定に-1(削除無効)指定ができるようにした。
Ver1.35b->1.36の変更点
・URLの識別、取得について日本語ドメインに対応した。
・HTMLタグを自動的に色付けする機能を追加(ShowHTMLTagColorプロパティ)。
・PrintTextメソッドを文字列の消去のみに使った場合キャレットが正しくセッ
トされない不具合を修正。
・WordWrap=False、横スクロールした状態でReturnキー入力後キャレット移動が
不正になる不具合を修正。
Ver1.35a->1.35bの変更点
・WordWrap切り替えを行ったときキャレットの位置制御がうまくいかないことがあった不具合を修正。
・横スクロールした状態で選択、ペースト、Undo操作をすると左端部にゴミが残ることがあった不具合を修正。
Ver1.35->1.35aの変更点
・Printtextメソッドで行削除を伴うと折り返し処理が実行されない不具合を修正。
・折り返し無しでPrinttextを実行した際、キャレット位置がプリセットされないことがあった不具合を修正。
Ver1.34->1.35の変更点
・ActiveX用フォントカラー設定プロパティAxFonrColorを追加。
・上下のスクロールを開始する限界を指定できるプロパティを追加(VertScrollLimit)。
クライアント領域に対し%単位で指定できます。
・Bold,Italicの文字装飾が出来るSettxtColor3メソッドを追加。
・Tabを含むテキストのキャレット上下移動がずれる事があった不具合を修正。
・行末にEOFがあるとき上書き入力、LineDel、SonTrim、Seltext関連メソッドなどが正しく
ない動作をする不具合を修正。
・EOFのある行で表示に問題が出ることがあった不具合を修正。
Ver1.33->1.34の変更点
・ActiveXコンポーネントに次のイベントを追加
OnkeyDown,OnkeyUP,OnMouseMove,OnMouseDown,OnMouseUp
・DelphiでActiveXとして登録して貼り付けたときにOC004エラーが出る不具合を修正。
Ver1.32->1.33の変更点
・ActiveXからLinesプロパティにアクセスできる手続きを追加(先頭がAxから始まる)。
テキストの色付けなどがやりやすくなります。
・ヘルプファイルをVista環境で読めるようchm形式に変更。
Ver1.31->1.32の変更点
・Windows Vistaに対応
・OnOLEDropFilesでドロップされたパスによってはファイル名が正常に取得できなかった不具合を修正。
Ver1.30->1.31の変更点
・主要なメソッド、イベントをActiveX互換に変更※。
・プログラミングガイドにActiveXの使用法とC#のサンプルコードを追加。
・カスタマイズ可能なルーラーとカーソルの表示機能を内蔵した。
・漢字再変換機能を内蔵した。(IMEReconvModeプロパティ)
・OLE Drag&Drop機能を内蔵しオブジェクトインスペクタから設定できる
ようにした。(DragMode=dmOLEAuto)
・Tab表示OFF、半角スペース表示ONのとき、Tabの部分に半角スペースが
表示されてしまう不具合を修正。
・OnClientUserDrawイベントの仕様を変更。必要な描画領域を受け取れ
るようにした。
・SetTxtColor2メソッドのフォント装飾パラメータをアンダーラインON/
OFFのみに限定した(ActiveX対応の為)。
・Settxtcolor2メソッドの仕様を変更。描画領域の制限を追加し、矩形
選択に対応した。
・SavetoFileメソッドで保存したファイルにEOFが付くことがあった不具
合を修正。
・半角ペースを表示しているときタブの選択表示がおかしくなる不具合
を修正。
・引用符に関するプロパティとメソッドの名前をQuotMarkに変更。
※バージョンアップの注意
TSonEditを貼り付けたフォームをすべて表示させ、エラーの出るプロ
パティを修復してください(引用符はInyo をQuotMark で置換)。プロ
パティの存在エラーに対しては「すべて無視」を選択します。エラーが
出ない場合でも、改行を入れるなど適当な編集を加えて上書き保存を実
行する必要があります。
OnClientUserDrawイベントは、一度実装を削除したのち、ヘルプにあ
るプログラミングガイドの「表示デザイン」トピックを参考に再実装し
てください。
Ver1.29->1.30の変更点
・EOFコードの仕様を2バイト(#0+#0)から通常の#0に変更した。
・矩形選択モード(Boxselmodeプロパティ)を追加した。
・PPフォント利用時、幅の小さい文字が連続したとき短い長さで折り
返されてしまう不具合を修正(ピクセル幅基準に変更)。
・半角スペースを可視できるようにした(ShowSglSpaceプロパティ)。
・フリーキャレットモード(FreeCaretmodeプロパティ)を追加した。
・CursetメソッドでONSelectionChangeイベントが発生していなかった不
具合を修正。
・'"'をメールアドレスで使えるようにした
・フリーキャレット編集モードを実装。
・アスキーアートエディタを構成するためのプログラミングガイドを追加。
Ver1.28->1.29の変更点
・WM_CHARで外部アプリケーションから2バイト系文字を受け取れるようにした。
・テキスト末尾付近でDelete,Backキーを押したときのキャレット位置制御を改良。
Ver1.27->1.28の変更点
・FindChangeメソッドにキャレット位置から置換を開始できるパラメータを追
加(従来と同様の使い方をする場合は、パラメータの最後にTrueを追加して
ください。)
・選択範囲を置換する場合の範囲認識を、行単位→文字単位に改良。
・ホイールマウスのスクロールステップを変更できるWheelStepプロパティを
追加。
・CaretScrollFixプロパティがFalseのとき、TSonEditがフォーカスを受け取
った直後にIME変換文字列の表示位置がずれていた不具合を修正。
・WordWrap=Falseのとき、最終行を表示した状態でウインドウの高さを伸ばす
とスクロールバーのボタンが消えて操作不能になった不具合を修正。
・TfileTypeの宣言をTfileEndTypeに変更(Delphiとの重複を回避)。
・上端ルーラ部にごくまれにゴミが残ることがあった不具合を修正。
Ver1.26->1.27の変更点
・autowrap=trueのとき画面サイズを極端に縮めると永久ループになることがあった不具合を修正。
・Parentfontプロパティを追加。
・TSonEditの影響で他のコントロールのカーソル位置が不正な場所に表示されることがあった不具合を修正。
・選択解除してすぐSelTextを実行するとゴミを返していた不具合を修正。
・特定範囲のテキストを取得するGetStrメソッドを追加。
Ver1.25->1.26の変更点
・テキストの選択を解除したときOnMoveCaretイベントが発生しなかった不具
合を修正。
・テキスト分割点の計算方法に問題があり起動時にエラー'OC004'が発生する
ことがあった不具合を修正。
・一部の非公開プロパティが間違ってオブジェクトインスペクタに登録されて
いた不具合を修正。(プロパティが存在しないというエラーが出た場合は、
ヘルプのトラブルシューティングを参考にしてください)
Ver1.24->1.25の変更点
(1)1行文字数が非常に長いテキストをAutoWrapしたときのパフォーマンスを改善。
(2)URL識別における日本語ドメイン対応を廃止した。
(3)テキストの色づけ表示をすると上下にゴミが残ることがあった不具合を修正。
(4)文中に複数のタグが記述されていてもTagSearchメソッドが正しい結果を返すよう改良。
(5)cursetメソッドでsetcenter、settopを指定したときのキャレット移動動作を改善。
(6)折り返された引用行に色が付くようにした。
(7)TagSearchメソッドでposyの戻りがEOFを超えた場合、posyに-1を返すようにした。
(8)キャレットの左移動で上の行に移動したときキャレット位置計算に誤差が出ることがあった不具合を修正。
(9)Ctrlと組み合わせたショートカットの入力で他のコントロールにフォーカスを移動した結果、キャレットが消えることがあった不具合を修正。
(10)cursetを呼び出したとき、ルーラのマーカが移動しないことがあった不具合を修正。
(11)クライアント領域の計算に誤差が出ることがあった不具合を修正。
(12)Trim関係の処理を最適化した。
(13)サポート対象のOSからWin95,Win98(SEなし),NT4.0を除外した。
Ver1.23->1.24の変更点
(1)settxtcolor2がルーラー部分に重ね書きしてしまうことがあった不具合を修
正。
(2)スクロール時にUserClientDrawが重ねて呼び出されるケースを無くし、パフ
ォーマンス・の向上と描画時のちらつきを低減した。
(3)SetselLineが機能していなかった不具合を修正。
(4)ソースコードの無料配布の条件について補足説明を追加した(使用条件2に
も関連事項を追加)
Ver1.22->1.23の変更点
(1)OnUserClientDrawイベントが文字入力時にも呼び出されるよう変更。
(2)キャレットのレイアウト上のカラム位置を示すプロパティCurposX2追加(キ
ャレットの座標表示にはこちらをご利用ください。)
(3)AutoWrap=Trueで画面サイズが変動した際のキャレットの位置制御を改良。
Ver1.21->1.22の変更点
(1)Undo機能を一時的にON/OFFできるUndoRecプロパティを追加。
(2)UndoBuf=0のとき、Undoが無効になるようにした。
(3)Readonlyの制限をキーボード入力のみに限定した。(編集メソ
ッドを直接呼び出す場合は、readonlyであっても編集されます
のでご注意ください)
(4)Curpossetによるキャレット移動結果がスクロールされているの
にスクロールバーが効かない態になることがあった不具合を修
正。
(5)最下行を選択した状態でスクロールバーを操作すると最下行の
非表示エリアにゴミが残った不具合を修正。
(6)編集とキャレットの移動時に送信していたPostmessageを撤廃し
た。(以前と同じ機能を実現する場合は、手作業で手続きを実
装する必要があります。詳細はプログラミングガイドをご参照
ください。)
(7)$7fff行を超える行にキャレットをセットしようとすると範囲チ
ェックエラーが発生していた不具合を修正。
Ver1.20->1.21の変更点
(1)ReDesignメソッドを追加(従来のRecreateと同等のものです。
実行時にフォントやスクロールバーの状態を変更するために
Recreateをお使いの場合は、これと置き換えてください)。
(2)300KB以上のテキストを読み込んだ状態でRecreateメソッドを呼
び出すとEOSErrorが発生した不具合を修正。
(3)Recreateの仕様を、テキストをすべて削除しエディタを初期化
するように変更。
(4)Printtextで直前にテキストの選択がある場合undoがうまく機能
しなかった不具合を修正。
(5)Printtextでx1=X2,Y1=y2の条件の時、結果が不正になっていた
不具合を修正。
(6)半角文字を入力したときOnKeypressイベントを先に処理するよ
うにした。
(7)Tmemoとの互換のためSelectAllメソッドを追加。
Ver1.19->1.20の変更点
(1)OLE DragDropの実装に対応した(従来通りDragDrop機能を有効にするには
DragModeをdmAutomaticに設定する必要があります)。
(2)行間の指定単位をパーセントのほかピクセルで指定できるLineSpaceUnitプロ
パティを追加。
(3)バックグラウンドでTSonEditに編集操作をすると、既存のキャレットが消え
てしまった不具合を修正。
(4)Drag中にCtrlキーを押して離すと、マウスカーソルがデフォルトに戻ってい
た不具合を修正。
(5)マウスダウンで漢字変換を確定するようにした。
(6)EOFのところから下から上に改行のない行のすぐ下まで、スクロールバーがち
ょうど消える行数まで行単位で選択した場合インデックスエラーが発生した
不具合を修正。
(7)全てを選択状態にしたときgetsellineの戻り値に誤差があった不具合を修
正。
(8)全てを選択状態にしたときキャレットを動かして選択すると表示が不正にな
っていた不具合を修正
(9)SetselLineメソッドの動作を改善。
Ver1.18->1.19の変更点
(1)特定の単語に色を付けるためのメソッドと専用イベントを追加(詳細はプログラミングガイドをご参照)。
(2)外部アプリケーションからTSonEditをコントロールするためのメッセージハンドラを充実。
(3)Tabを表示できるプロパティShowTabを追加。
(4)任意の座標を指定して選択状態に出来るSetSellineメソッドを追加。
(5)キャレットの位置から表示座標を計算するメソッドGetCurPostoPixを追加。
(6)メソッドの名称を変更 LineTabSpc->LineTabToSpc。
(7)表示行の数を取得するプロパティClLineCountを追加。
(8)OnUserDrawイベントの引数x2がスクロールバーのサイズだけオーバーしていた不具合を修正。
(9)DragDrop時スクロールが発生すると選択解除されたとき上端のマージン領域にゴミが残ることがあった不具合を修正。
(10)キャレット固定モードのとき、Drag&Dropの編集後キャレットのセットが別の位置に飛んでしまう不具合を修正。
(11)選択された状態でUndoを実行するとアンダーラインが残った不具合を修正。
(12)一語削除、キャレット前後一括削除の時、事前に選択状態になっていると画面にゴミが残った不具合を修正。
(13)プロポーショナルフォントで「も」を入力して編集すると左側に1ドットゴミが残る不具合を修正。
(14)「a@」があると全角スペースの表示が重なって出る不具合を修正。
Ver1.17->1.18の変更点
(1)スクロール時にキャレットを固定できるCaretScrollFixプロパティを追加。
(2)ファイルがリードオンリーのとき、Ctrl+Delete またはBackSpaceを押すと反応があった不具合を修正。
(3)マウス操作で文字単位の選択を下方向にしたとき、マウスカーソルを左端の領域に移動すると、行の先頭から選択の対象になってしまう不具合を修正。
(4)Tabが多く記述されたテキストでキャレットを移動するとフリーズすることがあった不具合を修正。
(5)編集すると折り返しの位置が微妙に変わることがあった不具合を修正。
(6)Sellengthプロパティがマイナスで行をまたぐとき、不正な結果になっていた不具合を修正。
(7)HTMLタグでURLを記述した場合、タグの後端部分まで色が変わってしまっていた不具合を修正。
(8)Vectorからインターネット決済でソースコードを入手できるようにした。
Ver1.16->1.17の変更点
(1)GetNonWrapStrでEOF行を取得したとき戻り値が初期化されず前回の値を返
していた不具合を修正。
(2)漢字再変換機能のプログラミングガイドに記載のサンプルコードを改良。
(3)下から上に選択した状態でホイールスクロールを実行すると上部にゴミが
残った不具合を修正。
(4)プロパティ名を変更 UlineF->ShowUnderLine
(ご注意)
プロパティ名変更に伴い、実装に手続きが必要です。詳しくは、ヘルプのト
ラブルシューティングをご参照ください。
Ver1.15->1.16の変更点
(1)外国語のシングルバイト編集ができるSingleByteModeプロパティを追加。
(2)ONKEYDOWNイベントをキー入力処理より先に実行されるよう変更。
お知らせ
ActiveXコントロールを同梱配布(2006/8/23)
Ver1.31からアクティブXコントロールを正規の配布ファイルに同梱としました。
ActiveXコントロールの配布(2006/8/11)
C++,C#などのIDEに組み込んで利用できることを目的にTSonEditのActiveXコントロールを公開しました。現状は組み込みの確認程度で、ユーザーのご意見を参考に完成度を高めていきたいと考えています。
Delphi8と2005のサポートについて(2005/1/1)
Delphi8(.NET)とDelphi2005に対しては、当面対応の予定はありません。Delphi5についてはソースコードがあればコンパイル可能になると思われますので、ソースコードの入手をご検討ください。
Ver1.22ヘルプ差し替えについて(2004/9/11)
9/11AMまでに公開されていたVer1.22では古いヘルプが同梱されていました。最新のヘルプを同梱したファイルを公開しましたので、9/11AMまでにDLされた方は再度DLして差し替えてください。
Ver1.20の不具合について(2004/6/4)
Ver1.20では300KB程度のテキストを読み込んだ状態でRecreateメソッドを呼び出すと「EOSError」、もしくは「システムエラー」が発生することがあります。これについては対策でき次第、修正版を公開いたします。
サポートの変更について(2004/4/24)
Vectorによるシェアウェア決済がスタートしました。
Delphi5のサポートおよびパッケージファイルの配布は終了しました。
Delphi7のパッケージファイルの配布を開始しました。
Delphi8のリリースとサポートの変更について(2004/3/2)
Vectorによるシェアウェア決済は手続き中です。正式スタートは数週間後になります。
Delphi8リリース後はDelphi6,7,8の対応を予定しています。Delphi5のサポートおよびパッケージファイルの配布は終了させていただきますので、よろしくお願い致します。
Ver1.13の配布ファイルに付属しているソースコードについて(2002/1/6)
Ver1.13に付いてくるソースコードは開発中の古いものが誤って添付されたものですので、お使いにならないでください。ただ他のIDEでコンパイルのチェックとかはできるので、このあたりの用途にご利用になる分はかまいません。なお、バージョンアップが頻繁に行われる関係上、ソースコードの一般公開を検討しております。
Ver1.13の更新でプロジェクトを再構築してもエラーが出ず、実行時にエラーが出てしまう。
古いTSonEditのパッケージが複数の場所にあって、それを参照しているのが原因です。パッケージをインストールしたライブラリパス以外の場所にある古いTSonEditのパッケージファイルをすべて削除してください。
Delphi7の対応について
TSonEditは、私的な都合によりDelphi7に対応する予定はありません。Delphi7にバージョンアップしてしまうと、インストールできなくなる可能性がありますのでご注意ください。
ソースコードがあればDelphi7にインストールすることが可能と考えられます。どうしてもDelphi7をお使いになりたい方は、ソースコードをお求めください。
トップページに戻る