~katsuhiko メッセージボード

back 1601-1650

1651-1700

1701-1750


1700 ホームページをOPENしました! コメント数:  2件
  M.H  | 2001/10/14 (日) 10:29
 http://www7.ocn.ne.jp/~mhsoft/
こんにちは、M.Hです。

突然ですが、ホームページが完成しましたのでご報告にきました。
TEditorを使ったソフトがありますので、
一度見てみて下さい。
ただ、まだ評価版ですので、バージョンアップしまくりです。

PS.本田さんのホームページへリンクを貼らせて頂きました。



1699 Re^3: 初心者にお勧めのサイトOR参考書をおしえてください コメント数:  1件
  Km   | 2001/10/14 (日) 02:52
>  Delphi の解説書はとにかく書店で実際確認できるものが非常に少ないことが
> 問題ですね。だって VB の解説書なら延べ200冊くらい置いてあるところでも
> Delphi のそれは 10 冊もないところがほとんどですから。とある情報によると
> 首都圏の書店ではけっこう置いてあるとのことで地方に行くほど VB の比率が
> 加速度的に増大するのだそうです。九州の最南端に住んでいる私としてはまこ
> とに実感できる話です。しかし博多の紀伊国屋に行ってもあんまり事情は変わ
> りませんでしたねえ。

VBの本は同じような内容のものばかりですけどね。私はDelphi本はDelphiマガジン
(隔月)を買っています。読み物としてですけどね。参考書としてはDelphi3Q&A150選
とDelphi Win32 Graphics API リファレンスを持っています。
私自身はDelphiでアプリケーションを作ることはないので、かなり偏った知識しか
ないのですが、コンポーネントを作るときは本田さんのソースを参考にさせてもらってます。
やっぱり一番の参考書は人のソースだと思いますね。



1698 Re^3: 初心者にお勧めのサイトOR参考書をおしえてください コメント数:  2件
  本田勝彦  |  2001/10/14 (日) 00:37
> >  Delphi に付属の ObjectPascal 言語ガイドと開発者ガイドですね。これを
> > 読まずして幾多の参考書を読もうとも、それは徒労というものです。
> は正論ですけど D5 にはプロフェッショナル版でも ObjectPascal 言語ガイド
> は付属していませんでした。D6 もそうなら不親切だと思います。

D6 には付属するようです。
http://www.borland.co.jp/delphi/papers/vbtodel/vb2del08.html

>  そういえば最近 ObjectPascal 言語の解説書が出たんじゃないでしょうか?

http://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/books/477410891X/
ですね。でもリファレンス読めばこんなのは要らないと思います。
本屋で見たけど読みたいところがいっこもなかったモン。



1697 Re^2: 初心者にお勧めのサイトOR参考書をおしえてください コメント数:  5件
  ゆうきひろ  | 2001/10/13 (土) 23:56
 http://homepage2.nifty.com/ultla7/mozart/_start.htm
 Delphi の解説書はとにかく書店で実際確認できるものが非常に少ないことが
問題ですね。だって VB の解説書なら延べ200冊くらい置いてあるところでも
Delphi のそれは 10 冊もないところがほとんどですから。とある情報によると
首都圏の書店ではけっこう置いてあるとのことで地方に行くほど VB の比率が
加速度的に増大するのだそうです。九州の最南端に住んでいる私としてはまこ
とに実感できる話です。しかし博多の紀伊国屋に行ってもあんまり事情は変わ
りませんでしたねえ。もっともここ4年ほど Delphi 本は買ったことがないで
す(^^;)。
 本田さんの
>  Delphi に付属の ObjectPascal 言語ガイドと開発者ガイドですね。これを
> 読まずして幾多の参考書を読もうとも、それは徒労というものです。
は正論ですけど D5 にはプロフェッショナル版でも ObjectPascal 言語ガイド
は付属していませんでした。D6 もそうなら不親切だと思います。
 そういえば最近 ObjectPascal 言語の解説書が出たんじゃないでしょうか?



1696 Re: 初心者にお勧めのサイトOR参考書をおしえてください コメント数:  6件
  本田勝彦  |  2001/10/13 (土) 17:55
> はじめまして あーぶぅと言います
> サブジェクトそのままなんですが、
> 初心者にお勧めのサイトOR参考書をおしえてください。
> お願いします。

サイトは nifty:FDELPHI
参考書は、Delphi に付属の ObjectPascal 言語ガイドと開発者ガイド
ですね。これを読まずして幾多の参考書を読もうとも、それは徒労というものです。



1695 Re: 初心者にお勧めのサイトOR参考書をおしえてください コメント数:  0件
  Km   | 2001/10/12 (金) 17:41
> 初心者にお勧めのサイトOR参考書をおしえてください。

Delphi?コンポーネント作成?オブジェクト指向?デザインパターン?
どのような事が知りたいのか、もう少し詳しく書いた方が回答がつきやすいと思いますよ。
#男の手料理とかじゃないよなぁ(^^;



1694 初心者にお勧めのサイトOR参考書をおしえてください コメント数:  8件
  あーぶぅ  | 2001/10/12 (金) 11:23
はじめまして あーぶぅと言います
サブジェクトそのままなんですが、
初心者にお勧めのサイトOR参考書をおしえてください。
お願いします。



1693 Re^2: TEditor超進化万歳 コメント数:  0件
  かとちん  | 2001/10/07 (日) 00:32
 http://homepage2.nifty.com/t-katochin
> どもども、蛇足ながら、Delphi ページのいっちゃん下にコンポーネントヘルプの
> ドキュメントも置きましたので、良かったら見てやって下さいね。
おー!実は欲しかったんです。気づかなかった。

> TXMLFountain 作ってね。って、かとちんさん仕事速いから明日にはもう公開されたりして(^^;
いやいやXMLFountainは必要ないですよ。表現力については
THTMLFountainで充分だし。

やりたいのはタグの対応ジャンプや、自動終了タグのコード補完、
タグ内の要素や属性なども入力候補(同じXML内で使用されているキーワードを
リストアップ)が出せるようにしたいと思ってます。
できれば、新しくできたイメージのマークを使って、IEでも実現している
ツリービューのように開閉ができるものを作りたいなぁと思ってます。
でもちょっと思ったように時間が取れなくて中々進捗は滞ってたりします。
ぼちぼちやってきます。

ではまた。



1692 TEditor ver 2.35 コメント数:  0件
  本田勝彦  |  2001/10/06 (土) 01:40
公開しました。バイナリファイルを読み込んだ時の不具合を解消しました。
DBKanjiProc に敗因がありました。

ヘルプファイルも一部記述を見直しました。ver 2.35 です。



1691 Re^2: 大きなファイルでのスクロール コメント数:  0件
  本田勝彦  |  2001/10/06 (土) 00:11
(1), (2), (3) はおっしゃる通りです。

> 私の理解が正しいならば、各行をパースするためのデータの一部は
> 既にキャッシュされているわけです。

そうです。2回パースされるんですよね。

ですが、1回目のデータを取得する時に描けば良いぢゃんとなると、
LastTokenBracket メソッドの中の while Token <> toEof do
のループの中で描画処理を行わなければなりませんよね。

なので、今の仕様になっています・・・1回目で描けるかなぁ?

> スクロールを速くするためには キャッシュするデータを増やす、
> TEditorScreenStrings.UpdateBrackets の 整合性の条件を変える、
> は思いつきますが、他にもボトルネックになる部分ってありますか?

データを増やしても、スキャンしていない部分が見えた時点で遅い処理が始まりますので、一番良いのは InitBracketsFull プロパティだと思います。

整合性の条件をパーサーに問い合わせるという仕様は可能かもしれません。
ややこしそうだけど(^^;



1690 Re: 大きなファイルでのスクロール コメント数:  0件
  本田勝彦  |  2001/10/05 (金) 23:52
> 大きなファイルの後半のほうを開いているとスクロールが遅くなりますね。

まず、こちらからね。
TEditor.Speed.InitBracketsFull プロパティを True にすると、ファイルを
読み込んだ時点で全行スキャンを行いますので、「遅くなる」現象は出ません。

> スクロールのときにテキストの最初から計算している部分があるのではないでしょうか?。

場合によっては(大きいテキストをコピーしておいて、SelectAll 状態で貼り付けを行った場合など)最初から計算しますね。

> 計算済みの値を配列に入れておけば、速くなると思いますが、どうでしょうか?。

この辺は、みずほちゃんさんの方に書きます。




1689 Re: 大きなファイルでのスクロール コメント数:  1件
  みずほちゃん  | 2001/10/05 (金) 22:43
私も本田さんにお聞きしたいです。

(1)
編集しているテキストに大きな変更があった場合 、
TEditorScreenStrings.InitBrackets を実行し、
現在使用されている TFountainParser のオブジェクトを使って
各行のパースに必要な TRowAttributeData の各フィールドに
対応する値を変更し、それぞれの保存用の配列(PrevRowsやBrackets等)に保存する。

(2)
変更が小さい場合は TEditorScreenStrings.UpdateBrackets を
実行し、編集された行からさかのぼってデータの整合性が得られる行まで
戻る。そして、そこからテキストの終わりに向かって、各行のデータを更新する。

この時、整合性がとれない場合があり、最悪の場合、
先頭の行からパースし直すことがある。

(3)
(1)(2)が終わった後、 TFountainParser のオブジェクトを使って、
表示すべき各行に対してパースと描画を繰り返す。

私の理解が正しいならば、各行をパースするためのデータの一部は
既にキャッシュされているわけです。

スクロールを速くするためには キャッシュするデータを増やす、
TEditorScreenStrings.UpdateBrackets の 整合性の条件を変える、
は思いつきますが、他にもボトルネックになる部分ってありますか?



1688 大きなファイルでのスクロール コメント数:  3件
  たけ(tk)   | 2001/10/05 (金) 11:55
大きなファイルの後半のほうを開いているとスクロールが遅くなりますね。

スクロールのときにテキストの最初から計算している部分があるのではないでしょうか?。

計算済みの値を配列に入れておけば、速くなると思いますが、どうでしょうか?。

「どこまで計算済みか」も保存しておいて、テキストに変更があったら「計算済み」を短くする。

値が必要なときには、「計算済み」の部分から必要な場所までを計算して、配列に入れる。



1687 Re: TEditor超進化万歳 コメント数:  1件
  本田勝彦  |  2001/10/05 (金) 03:30
> お久しぶりです。

ほんとお久しぶりです。お元気ですか?

> 実は、今回取りにきたのはHTMLParserが
> 多少進化していないかなぁという期待から
> なのですが、もう全然想像を超越してしまって
> いました。

どもども、蛇足ながら、Delphi ページのいっちゃん下にコンポーネントヘルプの
ドキュメントも置きましたので、良かったら見てやって下さいね。

> 早速、かねてから欲しかったXMLエディタの
> 作成に取り掛かろうっと。

TXMLFountain 作ってね。って、かとちんさん仕事速いから明日にはもう公開されたりして(^^;




1686 TEditor超進化万歳 コメント数:  2件
  かとちん  | 2001/10/04 (木) 21:31
 http://homepage2.nifty.com/t-katochin/
お久しぶりです。
TEditor最新版ダウンロードしにきました。
いやービックリしました。Fountainという
新しい仕組みに!
これは凄い。以前、Parser周りを整理したいと
いろいろ考えられていた頃を最後に私は全然
アクセスしていなかったのですが、
結果は見事な仕様に仕上がったようですね。

実は、今回取りにきたのはHTMLParserが
多少進化していないかなぁという期待から
なのですが、もう全然想像を超越してしまって
いました。

いやぁ本当に驚きました。と、同時に自作した
TEditorからの派生クラス(これがもうねぇ。
THTMLEditorColorsやらTHTMLViewInfoやら
THTMLEditorProp やら、いろいろ派生しま
くってようやく出来たやつだったのねぇ。)が
ごみ箱行きでちょっと涙なんですが。(;_;

早速、かねてから欲しかったXMLエディタの
作成に取り掛かろうっと。

ではまた! (^-^)/~~



1685 Re^3: 生きて帰ってきました(あ!ゴミです) コメント数:  0件
  本田勝彦  |  2001/10/02 (火) 23:11
>  9月初めの長雨もあって、そんなによくないですね
>  天候も不順だったし

こちらの農家も嘆いています。ここ数年不順なようですね。

>  札幌ドーム見ながら鍬一丁でイモ掘ってるのは私くらいでしょうね

はははは。一等地になってしまいましたものねぇ。
練馬の大根農家を思い出します。もうすぐ大地主様ですね。

>  とんでもございません。全然更新してないや。お恥ずかしいです

濃いぃのが列挙されているので、楽しみにしています。



1684 Re^4: お久し振りです。 コメント数:  0件
  本田勝彦  |  2001/10/02 (火) 23:05
> 作らないとだめです。THTMLFountainParser を拡張すれば割と簡単に出来ます。

THTMLFountainEx をこしらえて見ました。良かったら参考にして見て下さい。

http://compodev.at.infoseek.co.jp/

に置きました。



1683 Re^2: 生きて帰ってきました(あ!ゴミです) コメント数:  1件
  alone55   | 2001/10/02 (火) 21:59
 http://homepage2.nifty.com/Side55
> ようこそ。お久しぶりですね。芋の出来具合はいかがでしょうか?
 うーん。
 9月初めの長雨もあって、そんなによくないですね
 天候も不順だったし
 札幌ドーム見ながら鍬一丁でイモ掘ってるのは私くらいでしょうね
> ありゃ?リンクするの忘れてますね。すんませんです。
 とんでもございません。全然更新してないや。お恥ずかしいです



1682 Re: 生きて帰ってきました(あ!ゴミです) コメント数:  2件
  本田勝彦  |  2001/09/30 (日) 23:42
> 久しぶりにこのページを見させていただきました。

ようこそ。お久しぶりですね。芋の出来具合はいかがでしょうか?

> この時の不良等をまとめたSideEditor1.45をリリースいたしました。
> また、ちまちま拡張を行って行きますので、よろしくお願いいたします。

ありゃ?リンクするの忘れてますね。すんませんです。




1681 Re^3: お久し振りです。 コメント数:  1件
  本田勝彦  |  2001/09/30 (日) 23:41
> THTMLFountainに接続しています。この場合は、AttributeValueとしての色ですが、#から始まる16進数表記のカラーの場合を変えるのはやはり、TEditorViewの中に無かったでしょうか?それはDrawで自分で実装した方がいいかも知れません。

Fountain プロパティに TFountain コンポを接続すると、View の設定は
Colors.Select, Colors.Hit 以外は無効になります。
ですから、# に続く[0..9, a..f, A..F] を認識して toInteger を返すパーサーを
作らないとだめです。THTMLFountainParser を拡張すれば割と簡単に出来ます。




1680 Re^2: お久し振りです。 コメント数:  2件
  dArce   | 2001/09/30 (日) 12:25
 http://www.w-frontier.com/
おはようございます。
速いレスありがとうございます。

> THTMLFountain を接続すると
> の body, color, =, #FFFFFF の部分を色指定出来ます。
> 素の TEditor.View の設定だけでは難しいと思います。

THTMLFountainに接続しています。この場合は、AttributeValueとしての色ですが、#から始まる16進数表記のカラーの場合を変えるのはやはり、TEditorViewの中に無かったでしょうか?それはDrawで自分で実装した方がいいかも知れません。

> その昔、清く正しい pascal 使いは、Result := Result + とやるもんだと教わりましたが(^^;

ちょっと試しに速度を測って見ました。
[1]Result := Result + #65 ;
[2]Result := Result + #$41 ;
[3]Result := Result + 'a' ;
というのは、一番下のが微妙に速かったんです。結構、ファイル単位での一括変換とか実装してますと、こういうのでも速度が気になりまして…(^^;)なんでそのまま書いた[3]が速いのかとか疑問になりましたが…

ポインタでずらして行った場合に、

Result := Result + p^

としますけど、戻り値をPcharにして、もっと高速に連結できないかと思ったので聞いて見ました。ありがとうございました〜(^^)。



1679 生きて帰ってきました(あ!ゴミです) コメント数:  3件
  alone55   | 2001/09/30 (日) 01:29
 http://homepage2.nifty.com/Side55
久しぶりにこのページを見させていただきました。
やっと本業(日本海の方のユーザ)が少し落ち着いて来て何とか
少し時間が出来ました。
この時の不良等をまとめたSideEditor1.45をリリースいたしました。
また、ちまちま拡張を行って行きますので、よろしくお願いいたします。



1678 Re^8: rdtool for win32 コメント数:  0件
  本田勝彦  |  2001/09/30 (日) 00:17
CSVを使うことも無しに

http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/freeclx/freeclx/clx/

から落とせるようです。色々ありました。D6 Personal な方は見てみてみぃですね。

> lazarusは 擬似VCLの下位ライブラリに
> gtk+ 、qt、Win32 API のどれかを選べるようにできる予定なので、
> ちょっと注目してます。

gtk, qt 未知の世界です。すんません。

> > > http://pasdoc.sourceforge.net/
> > うぅむ。コンパイル出来るんだべか(^^;
> 対応言語に日本語がないんですが、大丈夫なんですか?

え゛そうなんですか。読み進めてたのにぃ。
やっぱ、ruby を勉強することにしぉ。




1677 Re^4: 選択した範囲の改行を削除するには? コメント数:  0件
  本田勝彦  |  2001/09/30 (日) 00:10
見逃してました(^^;

> これからはもう少し自分で悩んでから質問したいと思います。

これは大切な姿勢だと思いますが、

> 本当にご迷惑をおかけしました。m(_ _)m

迷惑というのは違うと思いますよ。ここで良ければまた質問して下さい。
私もワカランことはワカランと書きますので、気楽にどうぞ。



1676 Re: お久し振りです。 コメント数:  3件
  本田勝彦  |  2001/09/30 (日) 00:07
> それと、0xから始まる文字は色変更できなかったでしょうか。個人的には、HTMLのカラーコードが#AAAAAAで始まりますけど、これを色を変えるのはどのようにすればいいでしょうか?#から始まり、16進法で表記されているものはControlCodeと見なされると書いてあったのですが、方法ございましたらよろしくお願い致します。

THTMLFountain を接続すると

<body color=#FFFFFF>

の body, color, =, #FFFFFF の部分を色指定出来ます。
素の TEditor.View の設定だけでは難しいと思います。

> というのをつい作ってしまいます(^^;)。特に、文字列連結の際に、「+」は遅いって本当でしょうか?StringReplaceって速度的にも結構遅いというのを聞きました。余計なお世話かもしれませんが… もっと速い方法ありましたら是非教えて下さると嬉しいです。

その昔、清く正しい pascal 使いは、Result := Result + とやるもんだと教わりましたが(^^;



1675 お久し振りです。 コメント数:  4件
  dArce   | 2001/09/29 (土) 22:57
 http://www.w-frontier.com/
こんばんわ。お久し振りです(^^)。

それと、0xから始まる文字は色変更できなかったでしょうか。個人的には、HTMLのカラーコードが#AAAAAAで始まりますけど、これを色を変えるのはどのようにすればいいでしょうか?#から始まり、16進法で表記されているものはControlCodeと見なされると書いてあったのですが、方法ございましたらよろしくお願い致します。

選択部分の改行コードを取るのは、ちょっとマニアックですが、
function TMainForm.DeleteCRLF(const s:String) : String ;
var p,p_end : PChar ;
begin
 p := PChar(s) ;
 p_end := p + StrLen(p) ;
 Result := '' ;
 while p <= p_end do
 begin
  if ((p^ = #13) or (p^ = #10)) and not (p^ in LeadBytes)) then
  else Result := Result + p^ ;
 end ;
end ;

というのをつい作ってしまいます(^^;)。特に、文字列連結の際に、「+」は遅いって本当でしょうか?StringReplaceって速度的にも結構遅いというのを聞きました。余計なお世話かもしれませんが… もっと速い方法ありましたら是非教えて下さると嬉しいです。

ではでは、最新版頂いて帰ります〜 頑張って下さい。



1674 Re^7: rdtool for win32 コメント数:  1件
  みずほちゃん  | 2001/09/29 (土) 00:58
> 引っ越し間近ですか?
サーバーのPC98なノートの設定が終わっていません。

> rpm ぢゃないですかぁ。いへ、みずほちゃんさんが悪いワケではないのですが。
ここもcvsを使っているので、FreeCLXの後にでも
ソースを取得してみてください。

以前試した時はWindows版は不安定で、使い物になりませんでしたが、
Linux版は ソースの編集 〜 実行 まではできました。
lazarusは 擬似VCLの下位ライブラリに
gtk+ 、qt、Win32 API のどれかを選べるようにできる予定なので、
ちょっと注目してます。

> > http://pasdoc.sourceforge.net/
> うぅむ。コンパイル出来るんだべか(^^;
対応言語に日本語がないんですが、大丈夫なんですか?

> 今 WinCvs を裏で落としてます。Kylix のソースは、Delphi 6 Personal な
> 方達にVCLを見せてあげられる方法が無いものかというココロなんです。
> TCollection とかを読んでもらえれば、感動を共有出来る仲間が増えて
> 嬉しいなぁと・・・
WinCVSだとGUIラッパーがあるだけに
うまく落とせないかもしれません。
設定ができない場合はWinCVSのコマンドライン呼び出し
を使ってみると良いかもしれません。



1673 Re: 別にあやあまらんでもえんでわ コメント数:  0件
  本田勝彦  |  2001/09/29 (土) 00:45

>  冷たい事を言うようですが、これはアナタの理屈でしかありませんよ。ユーザーサイドでできる事は最大限やってみるべきじゃないですか?ソースが公開されている訳ですし...。

世の中には作る人と使う人が居るんですよね。使う人はそれを使って、もっと他の
幸せのためにモノやサービスを作っているわけです。その幸せは、人によって違う
ので様々な要望が出るのだと思っています。

私も Delphi を使う人なわけですが、仮に Delphi のソースコードが公開されて
いたとしても、そう簡単にカスタマイズ出来るとは思っていません。

TEditor は、このような要望の中で私がオモシィと思ったものだけを取り入れて
今の姿になっています。黎明期には思いもよらなかったものになっています。

なので、遠慮せんで、わがままに要望を書いてもらった方がありがたかったり
するのです。オモシク無いのは実装しなければ良いだけですから(^^;




1672 別にあやあまらんでもえんでわ コメント数:  1件
  本田勝彦  |  2001/09/29 (土) 00:43
> 1.0xA0の件
>  参照URLのに従ってHEditor.pasの「$20..$7E, $A0..$FF」となっている所を「$20..$7E, $A1..$DF」に変更するだけでは駄目なのでしょうか?

これねぇ。以前何語だったか忘れましたが、外国語を表示するのに、こうなってると
都合が良いんだそうで、そのままになってる部分です。これからもそのままに
なると思います。

> 2.バイナリファイル
>  テキストエディタでバイナリファイルを開くこと自体がナンセンスではないですか?読み込めたとしても保存できませんが、これの対処も本田さんにお任せしますか?

確かに、今のデータ構造では保存出来ませんねぇ。困ったモンだ。

> 3.制御コード
>  がんばって実装してみて下さい。半角SPの実装例を参考にLineTo等で地道に描画していくしかないと思います。

秀丸のように、半角1文字で表現出来るとかなり楽出来ますね。

つづく



1671 Re^3: 選択した範囲の改行を削除するには? コメント数:  1件
  M.H  | 2001/09/29 (土) 00:27
DEKOさん、本田さん、ありがとうございました。

そういえば私、間抜けなことしてましたね(^^;)
ただ
StringReplace(Editor1.SelText,#13,'',[rfReplaceAll, rfIgnoreCase])
としてもダメでしたね。
ちゃんとSelTextにぶちこんであげたらうまく行きました。
たまにこんな初心者もしないようなミスをしてしまいます。
これからはもう少し自分で悩んでから質問したいと思います。

本当にご迷惑をおかけしました。m(_ _)m



1670 Re: 本田さん、本当にごめんなさい。 コメント数:  2件
  本田勝彦  |  2001/09/29 (土) 00:20
とりあえず、リストエラーをつきとめました。
heFountain.pas の LastTokenBracket メソッドの中頃に

if (SourcePos < L1) and (P > L1) then

とありますが、バイナリデータの場合、非 raWrapped データの場合もこの
判別をくぐってしまうのが敗因でした。

ver 2.34 であれば、

if (Data.RowAttribute = raWrapped) and
  (SourcePos < L1) and (P > L1) then

それ以前のバージョンの場合は

if (Strings.Rows[Index] = raWrapped) and
  (SourcePos < L1) and (P > L1) then

とすることで、リストエラーが出なくなります。WordWrap を切り替えても
大丈夫です。

MIFES, 秀丸で実装されている制御コードの入力ですが、実装してみたい
機能ではあります。が、かなりの改造を必要とすることと、それによる
パフォーマンスの低下が考えられるので、別の拡張コンポになるような
気がします。どちらにしても一筋縄では実装出来ないので、気長に、あまり
期待せずに、長い目で見てやって下さい。

とか言いながら、どうやったら良いのか結構考えてたりしたりして・・・



1669 Re^6: rdtool for win32 コメント数:  2件
  本田勝彦  |  2001/09/28 (金) 23:58
> # 今回だけハンドルネームを変えます。

引っ越し間近ですか?

> http://www.lazarus.freepascal.org/

rpm ぢゃないですかぁ。いへ、みずほちゃんさんが悪いワケではないのですが。

> http://pasdoc.sourceforge.net/

落としてきました。おぉ .pas は読めるぞ\(^o^)/

PPasDoc = ^TPasDoc;
TPasDoc = object(TObject)
^^^^^^
var
P: Main.PPasDoc;
begin
P := New(PPasDoc, Init);

うぅむ。コンパイル出来るんだべか(^^;

> > 何かアドバイスございますでしょうか?
> .soはWindowsの.dllに相当します。
> ですから、ソースは見れません。

あら、そうなんですか。無知とは恐ろしいもので、zcat してしまい。
結構たまげさせてもらいました(^^;

今 WinCvs を裏で落としてます。Kylix のソースは、Delphi 6 Personal な
方達にVCLを見せてあげられる方法が無いものかというココロなんです。
TCollection とかを読んでもらえれば、感動を共有出来る仲間が増えて
嬉しいなぁと・・・

色々アドバイスありがとうございます。



1668 Re^2: 選択した範囲の改行を削除するには? コメント数:  0件
  DEKO   | 2001/09/28 (金) 23:54
 http://homepage1.nifty.com/ht_deko/
同様に、

Editor1.SelText := Replace(Editor1.SelText,#13#10,'',False);

です(^^;



1667 Re: 選択した範囲の改行を削除するには? コメント数:  1件
  本田勝彦  |  2001/09/28 (金) 23:44
> StringReplaceを使用すればできるのかな?
> と思ったのですが、
> StringReplace(Editor1.SelText,#13,'',[rfReplaceAll, rfIgnoreCase])
> としてもうまくいきませんでした。

Editor1.SelText :=
StringReplace(Editor1.SelText, #13#10, '', [rfReplaceAll]);

かな?試してませんが(^^;
DEKO さんの書いてくれたコードも試して見て下さい。



1666 Re^2: 選択した範囲の改行を削除するには? コメント数:  2件
  DEKO   | 2001/09/28 (金) 16:17
 http://homepage1.nifty.com/ht_deko/
StringReplace(Editor1.SelText,#13#10,'',[rfReplaceAll])

または

Replace(Editor1.SelText,#13#10,'',True)

です。復帰(0x0d)だけではなく改行(0x0a)も指定して下さいね。



1665 Re: 選択した範囲の改行を削除するには? コメント数:  3件
  DEKO   | 2001/09/28 (金) 16:09
 http://homepage1.nifty.com/ht_deko/
こんにちは。

Delphi4以前か、Delphi5(UPDなし)ですか?

アップデートを充てても駄目なら以下を試して下さい。

function Replace(Src,C1,C2:String;Ignore:Boolean):String;
var
 Position1,
 Position2:LongInt;
 Dmy   :String;
begin
 Dmy    := Src;
 result  := '';
 Position2 := 1;
 repeat
  Dmy := Copy(Dmy,Position2,Length(Dmy)-Position2+1);
  if Ignore then
   Position1 := AnsiPos(AnsiUpperCase(C1),AnsiUpperCase(Dmy))
  else
   Position1 := AnsiPos(C1,Dmy);
  if Position1 > 0 then
   begin
    Delete(Dmy,Position1,Length(C1));
    Insert(C2,Dmy,Position1);
    Position2 := Position1+Length(C2);
    result := result + Copy(Dmy,1,Position2-1);
   end
  else
   begin
    result := result + Dmy;
   end;
 until(Position1 <= 0);
end;

 以前某所でUPDを充てた場合は解消されるという話を聞きました。私も同様の現象に遭遇したため、上記の関数をこさえたという訳です。

#ちなみに上の関数は「ReplaceAll」です。



1664 本田さん、本当にごめんなさい。 コメント数:  3件
  DEKO   | 2001/09/28 (金) 16:00
 http://homepage1.nifty.com/ht_deko/
書くのをためらいましたが、やっぱり書きます。


1.0xA0の件
 参照URLのに従ってHEditor.pasの「$20..$7E, $A0..$FF」となっている所を「$20..$7E, $A1..$DF」に変更するだけでは駄目なのでしょうか?


2.バイナリファイル
 テキストエディタでバイナリファイルを開くこと自体がナンセンスではないですか?読み込めたとしても保存できませんが、これの対処も本田さんにお任せしますか?

#「あのエディタではできますが?」は却下します。


3.制御コード
 がんばって実装してみて下さい。半角SPの実装例を参考にLineTo等で地道に描画していくしかないと思います。


>このままでは乗り換えに支障が出てしまいます。

 冷たい事を言うようですが、これはアナタの理屈でしかありませんよ。ユーザーサイドでできる事は最大限やってみるべきじゃないですか?ソースが公開されている訳ですし...。



1663 選択した範囲の改行を削除するには? コメント数:  6件
  M.H  | 2001/09/28 (金) 10:50
おはようございます。M.Hです。

表題の通り、選択した範囲の改行を削除したいのですが、
どのようにしたらよいかわかりません。

StringReplaceを使用すればできるのかな?
と思ったのですが、
StringReplace(Editor1.SelText,#13,'',[rfReplaceAll, rfIgnoreCase])
としてもうまくいきませんでした。

初心者的な質問かもしれませんがどうぞよろしく
お願い致します。



1662 Re^5: rdtool for win32 コメント数:  3件
  mizuho_chan   | 2001/09/28 (金) 01:26
# 今回だけハンドルネームを変えます。

> 入れて見ましたが、pp2html.bat というのは無いようです(^^;
lazarusと勘違いしていたいみたいです。

http://www.lazarus.freepascal.org/

このプロジェクトのドキュメント生成は
pasdocというツールで行われています。

http://pasdoc.sourceforge.net/

> 何かアドバイスございますでしょうか?
.soはWindowsの.dllに相当します。
ですから、ソースは見れません。

ソースを見たいだけならCVSレポジトリを覗くという
リンクがsourceforgeにはあるので、それをたどってもらえば良いです。
でも、ソースを入手したいとなると面倒です。

cvs は Concurrent Version System と言って、
バージョン管理を行うソフトです。
このソフトにはネットワーク越しにソースを取得する
機能があり、FreeCLXのソースを取得するには
これを使うしかないようです。

Windows用のcvsとしてはcygwin付属のcvsと
WinCVSがありますが、Linuxのcvsを使う方法もあります。

cvs がインストールできたら、あとは sourceforge の説明に従えば、
ソースを取得することができます。



1661 Re: 制御コードの件(2) コメント数:  4件
  本田勝彦  |  2001/09/28 (金) 00:21
制御コード問題は、全く未対応な分野になっています。
タブ文字には対応していますが(^^;

で、例えば、パーサーが toControlCode を返した時、 ^[ という表示を行う場合、1バイトのくせに2文字分の場所を占領しやがりますので、キャレット位置から文字インデックスを取得しているすべてのコーディングで対応する必要が出てきます。
タブに対応した時のように・・・

遠い将来において、実装されるかもしれません。
あまり期待しないでおいて下さい。

バイナリを読み込んだとき、リストエラーが出るのは Delphi でも一緒です。



1660 Re^4: rdtool for win32 コメント数:  4件
  本田勝彦  |  2001/09/28 (金) 00:10
> rdtoolのreadme.rd
> と
> http://www.ruby-lang.org/~rubikitch/computer/rd-intro.html

ブックマークしました。

> # Rubyに関係するドキュメントならRDで書くのは悪くないですが、
> # freepascal辺りにもpascalの埋め込みドキュメント用のツールが
> # あったと思います。

CマガジンのおまけCDに freepascal もありまして、(実り多いぞ)
入れて見ましたが、pp2html.bat というのは無いようです(^^;

ところで、http://freeclx.sourceforge.net/
libqtintf.so.2.2.4.3.gz をげっとしました。samba で linux へコピーして
gz -d ... とやっても .gz がとれただけであいかわらずバイナリファイルなの
ですが、これからソースコードを見られるようになるの

ぢゃないんでしょうねきっと。何かとんでもない勘違いをしているような・・・
何かアドバイスございますでしょうか?



1659 制御コードの件(1) コメント数:  0件
  たけ(tk)   | 2001/09/27 (木) 11:27
たけ(tk)です。

ちょっと特殊なお願いなのですが・・、

(1)0xa0 のコードで文字化けしないようにお願いできませんでしょうか?。

 http://euc.jp/i18n/charcode.ja.html によると、0xa0 は「未定義」のようなのですが、少なくとも「漢字1バイト目」ではありません。しかし、HEditor では「漢字1バイト目」と見なされて文字化けしてしまうようです。

制御コード 0x00〜0x1F
ASCII文字 0x20〜0x7E
制御コード 0x7F
(未定義?) 0x80
漢字 0x8140〜0x9FFC
(未定義?) 0xA0 ←これ
半角カタカナ 0xA1〜0xDF
漢字 0xE040〜0xFCFC
(未定義?) 0xFD〜0xFF

(文字数オーバのため次へ)



1658 制御コードの件(2) コメント数:  5件
  たけ(tk)   | 2001/09/27 (木) 11:26
たけ(tk)です。。。関連するお願い。

(2)バイナリファイル(たとえば hedit.kwf)を読み込むと、「リストがインデックスの範囲を越えています」となり、その後、暴走してしまいます。(これは Phi.dll の問題かもしれない)。Delphi で組み込んだ場合には大丈夫でしょうか?。wrap_byte=() で折り返し桁数を変更したときにでるようです。

(3)制御コードはすべて■で表示されているようですが、色ちがいの「^[」とか「0x00」などで表示するようになりませんでしょうか?。

ちょっと特殊なお願いなのですが、今まで使っていたエディタで(1)の 0xa0 を制御コード(ダミースペース)として多用していたため、このままでは乗り換えに支障が出てしまいます。よろしくお願いいたします。



1657 Re^3: rdtool for win32 コメント数:  5件
  みずほちゃん  | 2001/09/27 (木) 01:57
> > mswin版は幾つかありますが、
> > http://isweb27.infoseek.co.jp/computer/arton/indexj.html
> > がインストールが一番楽だと思います。
>
> コメントどうもです。無事ゲット出来ました。rd2xxxx.rb も入ってました。
> お勉強モード突入(^^;
rdtoolのreadme.rd



http://www.ruby-lang.org/~rubikitch/computer/rd-intro.html

が参考になると思います。
書籍だと
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3747-4.html

くらいでしょうか。
# Rubyに関係するドキュメントならRDで書くのは悪くないですが、
# freepascal辺りにもpascalの埋め込みドキュメント用のツールが
# あったと思います。



1656 Re^2: rdtool for win32 コメント数:  6件
  本田勝彦  |  2001/09/26 (水) 23:21
> mswin版は幾つかありますが、
> http://isweb27.infoseek.co.jp/computer/arton/indexj.html
> がインストールが一番楽だと思います。

コメントどうもです。無事ゲット出来ました。rd2xxxx.rb も入ってました。
お勉強モード突入(^^;



1655 Re: rdtool for win32 コメント数:  7件
  みずほちゃん  | 2001/09/26 (水) 02:39
> 探しているのですが、見つかりません。
> win32 なんて無いのかなぁ?
>
> ruby な方、見てましたら教えてやって下さいまし。
ありますけど、rubyを一式入れないと駄目です。

とりあえずcygwin版かmswin版のどちらかにするか決めないと
駄目ですが、

cygwin版は
http://www.ruby-lang.org/~eban/ruby/binaries/
から cygwinのDLL と ruby本体 と racc と rdtool と optparse
を取ってきて インストールする必要があります。

# cygwin環境(擬似UNIX)で作業しない場合はこちらはあまり
# 使う必要はないと思います。

mswin版は幾つかありますが、
http://isweb27.infoseek.co.jp/computer/arton/indexj.html
がインストールが一番楽だと思います。


Apollo版はrdtoolを突っ込むのが面倒なので、
お勧めしません。Apolloのインストール自体はmsi版があるので、
楽なんですけどね。



1654 rdtool for win32 コメント数:  8件
  本田勝彦  |  2001/09/26 (水) 00:09
探しているのですが、見つかりません。
win32 なんて無いのかなぁ?

ruby な方、見てましたら教えてやって下さいまし。



1653 Re^2: TEditorでcaret位置の正確な座標を知るには? コメント数:  0件
  M.H  | 2001/09/25 (火) 22:11
こんばんは、M.Hです。

> ですから、Edit1.Parent に Editor1.Parent を代入して
> GetCaretPos の値に Editor1.Top, Left の値を加えてやれば
> お望みの動作になると思います。

ありがとうございました。
おかげで私が望む通りの動作を確認できました。



1652 Re: TEditorでcaret位置の正確な座標を知るには? コメント数:  1件
  本田勝彦  |  2001/09/24 (月) 23:44
こんにちは。

GetCaretPos は Editor1 のクライアント座標を返します。
Edit1.Left に指定される値は、Edit1 の Parent に対しての座標になります。

ですから、Edit1.Parent に Editor1.Parent を代入して
GetCaretPos の値に Editor1.Top, Left の値を加えてやれば
お望みの動作になると思います。



1651 TEditorでcaret位置の正確な座標を知るには? コメント数:  2件
  M.H  | 2001/09/24 (月) 11:55
こんにちは、M.Hです。

TEditorで現在のキャレット位置にTEditを表示したいのですが、
GetCaretPosを使用し、

if GetCaretPos(Point) then begin
x := Point.x;
y := Point.y;
end;

とし、

Edit1.Left := x;
Edit1.Top := y;

で、なぜか変な位置にEdit1が表示してしまいます。
少しずれるどころじゃありません。

ちなみに、TEditorは実行時に動的に作成しており、PageControl上に
作成するようにしています。
Edit1はフォーム上に配置しております。
なにぶんまだ経験がたりないせいなのか2日も悩んで解決できません。
どのようにすれば正確な座標が取得できるのでしょうか?

よろしくお願いします。