リッチエディットの話(2)(1999/09/05)
新着情報 トップメニュー ボートメニュー 掲示板 お手紙はここ!

リッチエディットの絡みで投稿ありあり。アリバーデルチェよ!(意味なし。てゆーか意味知らん)

[タイトル無題]

うを。Delphi-MLDelphi広場でお馴染みの人だッ 俺はミーハーぢゃないですけど、どっかで見かけた人からメール貰うとドキドキしちゃうよなっ(アホ…)



お褒めにあずかり恐縮です〜 拘りと言うか、拘泥と言うか、もはや泥沼と言うべきか……やる前には「コレで上手くいく!」と絶大なる自身のことに実行してみたら全然ダメだった〜みたいな(笑)

TRichEdit.PlainTextの件なんてばその最たる例ですかねぇ……このプロパティを発見したときには、さしもの俺も目が点になったとか。いや、でも、リッチエディットなんだから書式情報が混ざってて当然と、多分みんな思うんじゃないかなあ…… 思わないかも


>タグの色分けですが、文字を入力した時点、という考え
>で全チェックはなかなか大変ですが、

大変です。他に手が思いつかなかったのでそのようになってますが、他のこの種のソフトってやっぱりマシン語とか使うのかしらんと思ったくらいで……

俺は研究不足なので、せいぜいループの中では TEdit.Text を何度も参照しないで、一旦適当な変数にコピーするくらいしか思いつきません。これだって大きいテキストだとコピーに時間が掛かる気がしますし……もっとちゃんとポインタ演算で効率化する事を考えなければ。

やはりAPIで着色できるんですねぇ。TCustomRichEdit のソースコードを調べてみても、一体何をやってるのかさっぱり解らなかったので諦めていました。普通のAPIを使うパターンとは、ずいぶん違う印象を持ちました……。調べる手間で重くても動くものを、と言うモットーもありましたし。

About Delphi の方は後ほど覗いてみまする。Tips が集積されていると知ってても、めったに開きませんねぇここ……。専らバックログの検索のために通ってます。リッチエディットの事は検索した事がありますけどねぃ。



>MemoryStream経由で、Lines.SaveToStreamで
>動的生成したダミーのRichEditに貼り付けて、その際に色付けする。
>それで実際編集するRichEditにこれまたMemoryStream経由で貼り付けたりする

あ、そうか! 普通は RTF タグごとセーブ/ロードされるわけだから、TMemotyStream で書式ごとコピーすれば良いのですな。すると言うと、無理にリッチエディットを生成する事もなく、RTF タグを直接挿入する方法も考えられますね……

例え全体を差し替えるとしても、多分 SelStart プロパティSelLength プロパティSelAttribute メソッドを駆使して着色するよりも高速かもしれません。ううーむ。

ああー、TFont クラスのデータを RTF タグに変換するのが面倒っぽいですが。最近の Delphi には RTF タグのリファレンスも入ってないですし……初代 DelphiDelphi2 には載ってたので問題ないですけどね。



TEdit ってシェアウェアだったような……。俺の場合、シェアウェアを購入しようとしても、銀行や郵便局が営業してる時間には仕事が忙しくて行けないんですよね……シェアウェアのためにクレジット会社が儲かるって言うのも納得がいきませんし、第一、免許証を持ってないからクレジットカード自体が簡単に作れない気がする(笑)

そう考えると、一日分の実入りを削ってまではシェアウェアは……。それが俺が OutLook なんぞを使ってる理由でもありますが。

この手のコントロールとなると、他にも確か EmEdit かなんか言う OCX があったと思います。 金を払う気がない以上、試用するのも失礼ですからシェアウェアはダウンロードさえしたことがないです。


まぁその内、気合を入れて自作するかも。しないかも


新着情報 トップメニュー ボートメニュー 掲示板 お手紙はここ!