~katsuhiko メッセージボード

back 901-950

951-1000

1001-1050


1000 Re^6: 空行挿入機能について コメント数:  14件
  K2  |  2001/01/28 (日) 10:22
 http://web.kyoto-inet.or.jp/people/koyabu/
 K2です。

> ???(^^;
> イベントを起動するのは誰でしょう?良かったらちょびっと解説して下さい。

 Delphi4以降だと、TActionが使えます。これは、ショートカットの
処理もしてくれますし、メニューやツールバーボタン、通常のボタンにも
参照を持たせることができて、参照を持たせれば、すべての動作を
TActionに集約することができます。
 で、ActionのOnExecuteにTEditorの動作を参照させておくと、ショート
カット、メニュー、ボタンなどのイベントがTActionを通って、TEditorに
やってきます。

 うーん、Actionを実際に使わないと恩恵はよくわからないと思いますが、
たとえば、MenuItemのOnClickで直接TEditorを駆動しようと思ったら、
TEditor側にTNotifyEventがないといけませんよね。TNotifyEventがあれば、
動的にしかできませんが、TMenuItemのOnClickで、本体側のコードを
介さず、直接TEditorを駆動できます。




999 Re^5: 空行挿入機能について コメント数:  0件
  本田勝彦  |  2001/01/28 (日) 00:03
 http://member.nifty.ne.jp/~katsuhiko
>  これだと、元々のキーも有効になってしまいますし、シフトキーを送るのは
> だいぶ面倒ですよね。まあ、やってやれないことはないですが。

そうかぁ。そうですね。

>  私の作っているエディタは、あと半年ぐらいかかりそうなんで、ゆっくりで
> いいです。(^^;

ゆるゆるが好き(^^:




998 Re^5: 空行挿入機能について コメント数:  15件
  本田勝彦  |  2001/01/28 (日) 00:02
 http://member.nifty.ne.jp/~katsuhiko
> 一つの手として、すべての動作をTNotifyEventで書いておくと、Delphi4
> 以降でしたらTActionに割り当てることができ、ショートカットキーの管理
> をTActionにまかせることができるので、便利です。
> うちの新TaskPrizeでは、TEditorのWMKEYDOWNをなくしてしまって、
> すべてTNotifyEventにして、完全キーカスタマイズを実現しています。

???(^^;
イベントを起動するのは誰でしょう?良かったらちょびっと解説して下さい。



997 Re^4: 空行挿入機能について コメント数:  1件
  DR-X   |  2001/01/27 (土) 10:22
>SendMessage(Editor1.Handle, WM_KEYDOWN, VK_DOWN, 0); とかでわだめ?

 これだと、元々のキーも有効になってしまいますし、シフトキーを送るのは
だいぶ面倒ですよね。まあ、やってやれないことはないですが。

>どうせやるなら、そういう命令セットを理解する Undo オブジェクトとセットで
>実装したい気もしますが、時間はかかると思います。

 私の作っているエディタは、あと半年ぐらいかかりそうなんで、ゆっくりで
いいです。(^^;

 ではでは(^^)/




996 Re^4: 空行挿入機能について コメント数:  16件
  K2  |  2001/01/27 (土) 09:25
 http://web.kyoto-inet.or.jp/people/koyabu/
K2です。

> SendMessage(Editor1.Handle, WM_KEYDOWN, VK_DOWN, 0); とかでわだめ?
>
> どうせやるなら、そういう命令セットを理解する Undo オブジェクトとセットで
> 実装したい気もしますが、時間はかかると思います。

一つの手として、すべての動作をTNotifyEventで書いておくと、Delphi4
以降でしたらTActionに割り当てることができ、ショートカットキーの管理
をTActionにまかせることができるので、便利です。
うちの新TaskPrizeでは、TEditorのWMKEYDOWNをなくしてしまって、
すべてTNotifyEventにして、完全キーカスタマイズを実現しています。

# TEditorを改造するとしても、そんなにややこしい改造ではないので、
# まぁ簡単にできるといえばできますが。



995 Re^2: TRegManager ver 1.4 コメント数:  0件
  本田勝彦  |  2001/01/27 (土) 01:52
 http://member.nifty.ne.jp/~katsuhiko
> よく私は、DEFAULT_CHARSET ←→ SHIFTJIS_CHARSET を切り替えて
> 使うことがあるのです。
> もしよかったら、次の RegMng のバージョンで採用していただけると
> ありがたいと思います。m(_ _)m

あらまぁ、フライングでしたね。今度ので対応したいと思います。



994 Re^3: 空行挿入機能について コメント数:  19件
  本田勝彦  |  2001/01/27 (土) 01:50
 http://member.nifty.ne.jp/~katsuhiko
>  えっと、一応下のほうで言いたかったのは、
>
>  「改行」「タブ」「カーソル上下右左」「行頭に移動」「行末に移動」
> 「単語右」「単語左」「文書の先頭に移動」「文書の最後に移動」
> 「次ページ」「前ページ」「行スクロール上」「行スクロール下」
>
>  など、ほとんどすべてで、メソッドに分離できないかなということです。

SendMessage(Editor1.Handle, WM_KEYDOWN, VK_DOWN, 0); とかでわだめ?

どうせやるなら、そういう命令セットを理解する Undo オブジェクトとセットで
実装したい気もしますが、時間はかかると思います。



993 Re: TRegManager ver 1.4 コメント数:  1件
  かとちん  |  2001/01/26 (金) 19:34
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
> を公開しました。TFont.Style の保存復帰が可能になりました。
> かとちんさんどうもです。(^^)
いいえどういたしまして。
ところで、RegMng 1.4 をインストールする前にコンペアかけたところ
ワタシの持っていたのは 1.0 だったんですが、個人的に次のように
改修していました。

... at TRegFiler.ReadFont

{$IFNDEF VER90}{$IFNDEF VER93}
Font.Charset := TFontCharset(StrToInt(ReadString(Section, Ident + '_FontCharset', IntToStr(SHIFTJIS_CHARSET))));
{$ENDIF}{$ENDIF}

... at TRegFiler.WriteFont

{$IFNDEF VER90}{$IFNDEF VER93}
WriteString(Section, Ident + '_FontCharset', IntToStr(Font.Charset));
{$ENDIF}{$ENDIF}


そういえば困って追加したことを思い出しました。
よく私は、DEFAULT_CHARSET ←→ SHIFTJIS_CHARSET を切り替えて
使うことがあるのです。
もしよかったら、次の RegMng のバージョンで採用していただけると
ありがたいと思います。m(_ _)m



992 Re^2: 空行挿入機能について コメント数:  20件
  DR-X   |  2001/01/26 (金) 09:39
>知りませんでした。出来ますね<某エディタ(^^;

 秀丸、EmEditor、WzEditor で確認しています。でも Delphi にはないん
ですよね。(^^;

>実装するとしたら、そういうメソッドを持たせて、アプリで
>Shift VK_RETURN をメニューのショートカットに設定する
>というパターンですね。考えてみます。

 えっと、一応下のほうで言いたかったのは、

 「改行」「タブ」「カーソル上下右左」「行頭に移動」「行末に移動」
「単語右」「単語左」「文書の先頭に移動」「文書の最後に移動」
「次ページ」「前ページ」「行スクロール上」「行スクロール下」

 など、ほとんどすべてで、メソッドに分離できないかなということです。
たとえば次ページを PageDn 以外で動作させたい場合、現在では無理ですよね。
これが、メソッドに分かれていればアプリ側で定義すれば呼び出せるわけです。
ただ、この場合、必ず呼ばないと動作しないようでは、お手軽に使いたい人に
とっては不便ですのでデフォルトで PageDn で動作すればいいと思います。
 集合型のプロパティを使って動作させるかどうかをそれぞれの機能で選べれば
いいんじゃないでしょうか。

 よろしくお願いいたします。





991 Re: 空行挿入機能について コメント数:  21件
  本田勝彦  |  2001/01/26 (金) 01:29
 http://member.nifty.ne.jp/~katsuhiko
> さっそくですが、Shift Enter での空行挿入機能って出来ないですか?
> これは、Enter とは違い、現在行の上の行に一行追加してインデントすると
> いうものです。この機能 Vz にあったためか日本のエディタでは一般的にある
> ようです。

知りませんでした。出来ますね<某エディタ(^^;

実装するとしたら、そういうメソッドを持たせて、アプリで
Shift+VK_RETURN をメニューのショートカットに設定する
というパターンですね。考えてみます。



990 Re: ご無沙汰しております コメント数:  0件
  本田勝彦  |  2001/01/26 (金) 01:26
 http://member.nifty.ne.jp/~katsuhiko
ようこそ、いらっしゃいませ。

> TEditor最新版を頂いてまいります。

パーサーまわりが未完成臭いですが(^^; かわいがってやって下さい。

> 先日、久しぶりにコンポを作ろうと思ったんですが、
> すっかりやり方を忘れてて嵌まりまくりました。(^^;;

お忙しいんでしょう。羨ましい気もします。
ご意見などありましたら、よろしくお願い致します。



989 空行挿入機能について コメント数:  22件
  DR-X   |  2001/01/25 (木) 21:31
 本田さん、こんにちは。DR-X です。

さっそくですが、Shift Enter での空行挿入機能って出来ないですか?
これは、Enter とは違い、現在行の上の行に一行追加してインデントすると
いうものです。この機能 Vz にあったためか日本のエディタでは一般的にある
ようです。

 あと、過去にも同じような要望がありましたが、このようなショートカット
を使用できないように設定できるようにして、アプリ側からこの機能を直接呼
べるようにならないかなと思います。そうすれば、好きなキーで使用できます
からね。

 ご検討お願いします。





988 ご無沙汰しております コメント数:  1件
  Epsy   |  2001/01/25 (木) 20:26
ご無沙汰しております、Epsyでございます。
TEditor最新版を頂いてまいります。

先日、久しぶりにコンポを作ろうと思ったんですが、
すっかりやり方を忘れてて嵌まりまくりました。(^^;;



987 Re: はじめまして コメント数:  0件
  本田勝彦  |  2001/01/21 (日) 23:58
 http://member.nifty.ne.jp/~katsuhiko
> HTMLエディタを作ろうと、思っています。サンプルと同じ処理でタグの色分けを行
>うようにしたのですが、HREF="http://www.xxx.com/" のように"で囲まれたアドレ
>スのリンクを有効にすることは出来ないのでしょうか?

toQuotation だった時、前後の " を取り去った文字列を取得して、それが
url かどうかを判別するといった処理が必用になると思います。




986 Re: はじめまして コメント数:  0件
  かとちん  |  2001/01/21 (日) 07:50
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
はじめまして。今日は一面雪景色。かとちんです。(^-^)/

ワタシも経験があります。Quotation は使わずに、派生パーサー側で
” の開始〜終了を判断してトークンを加工するようにしました。
でも2.0以前のパーサーなのでちょっと最新版に合わせなきゃなぁ...と
思いつつ手についてないという状況です。

▲● Inprise Delphi ... The Great Development Kit
■ uses D2Desktop, D3CSS, D4CSS, D5ENT;



985 はじめまして コメント数:  2件
  insp   |  2001/01/19 (金) 09:02
最近TEditorを知りました。
まだ少ししか使っていないのですが、ちょっと気づいたことを・・・
HTMLエディタを作ろうと、思っています。サンプルと同じ処理でタグの色分けを行うようにしたのですが、HREF="http://www.xxx.com/" のように"で囲まれたアドレスのリンクを有効にすることは出来ないのでしょうか?
もうちょっといろいろいじってみたいと思います。



984 Re^5: フォントが太字のときの表示。 コメント数:  0件
  本田勝彦  |  2001/01/18 (木) 00:08
 http://member.nifty.ne.jp/~katsuhiko
>  ちょっと補足しますと、「MSゴシック」などでは正しく動作します。
> 承知のこととは思いますが・・・

いへ、知りませんでした。(^^;
niftyで H-Triton さんからご指摘頂いたのもこの辺りのことが関係している
のかもしれません。
つまり、ColWidth(=FFontWidth) に TTextMetric.tmAveCharWidth を
設定することに原因があるのかも。




983 Re^4: フォントが太字のときの表示。 コメント数:  1件
  DR-X   |  2001/01/17 (水) 12:55
>>  正直言いますと、Margin.Characterは1にしたくないんです。見た目が少し
>> 悪いような気がします。
>
>私も同じ感覚でして、太字は使っていません(^^;
>

 ちょっと補足しますと、「MSゴシック」などでは正しく動作します。
承知のこととは思いますが・・・





982 TRegManager ver 1.4 コメント数:  2件
  本田勝彦  |  2001/01/17 (水) 00:50
 http://member.nifty.ne.jp/~katsuhiko
を公開しました。TFont.Style の保存復帰が可能になりました。
かとちんさんどうもです。(^^)

過去ログページも更新されてます。



981 Re^2: 検索でヒットしないのはなぜ? コメント数:  0件
  本田勝彦  |  2001/01/17 (水) 00:49
 http://member.nifty.ne.jp/~katsuhiko
> 原因は、Delphi 標準の AnsiUpperCase 関数が引数に β を与えるとBを
> 返してくるからということのようです。

返してくるのが当然で、htsearch.pas がこれに対応していませんでした。
対応バージョンができあがりましたので、TEditor の次バージョンで
公開したいと思います。

情報ありがとうございました。



980 Re^3: フォントが太字のときの表示。 コメント数:  2件
  本田勝彦  |  2001/01/17 (水) 00:47
 http://member.nifty.ne.jp/~katsuhiko
> >TEditor では、Delphi に習って、太字を利用する際は Margin.Character を
> >1にされることを推奨しています。
>
>  正直言いますと、Margin.Characterは1にしたくないんです。見た目が少し
> 悪いような気がします。

私も同じ感覚でして、太字は使っていません(^^;




979 Re^2: フォントが太字のときの表示。 コメント数:  3件
  DR-X   |  2001/01/16 (火) 10:15
 本田さん、こんにちは。DR-X です。

>TEditor では、Delphi に習って、太字を利用する際は Margin.Character を
>1にされることを推奨しています。

 正直言いますと、Margin.Characterは1にしたくないんです。見た目が少し
悪いような気がします。それに、この問題はたとえ マージンをとったにしても
キャレットを上書きモードにして持っていくと右にはみ出ていることがわかる
と思います。(FixedSysの場合)

 でも、この問題はそう単純にはいかないようですね。左に1ドットずらせば
といいましたが、フォントの種類や大きさによっては余計変なことになってし
まいそうです。

 私の方でも、もう少し調べてみます。ありがとうございました。




978 Re: フォントが太字のときの表示。 コメント数:  4件
  本田勝彦  |  2001/01/16 (火) 00:42
 http://member.nifty.ne.jp/~katsuhiko
WZは試したことが無いのですが、秀丸の太字描画の美しさはその昔研究させて
頂きました。TEditor では、Delphi に習って、太字を利用する際は Margin.Character を1にされることを推奨しています。
ドキュメントには無いのですが(^^;



977 Re^3: 手前味噌(続き) コメント数:  2件
  本田勝彦  |  2001/01/16 (火) 00:39
 http://member.nifty.ne.jp/~katsuhiko
こりゃやっぱり、Teddy も落として試してみないと良さを体感出来ないようですね。
試してみます。

拡張する上で特に困ったことなどは無かったですか?
現在パーサーを大幅に変更する予定があるので・・・



976 フォントが太字のときの表示。 コメント数:  5件
  DR-X   |  2001/01/15 (月) 21:31
 本田さん、こんにちは。DR-X です。

非常に細かい話なんですが、キーワード強調などで太字にした場合、
若干ですがキーワードが右にはみ出ます(キャレット位置を基準にして)。
 まあ、あたり前の話で太字になった分、1ドットはみ出てるわけです。

 なぜ、これが問題なのかといいますと、キーワードのところで折り返さ
れたときに1ドットかけてしまったり、キャレットが前の文字に重なって
見た目が悪かったりするからです。(すいません、細かいこといって)

 この仕様は仕方がないともいえるのですが、できれば左に1ドットず
らしてほしいと考えています。というのは半角アルファベットはほとん
ど左側に余白があるので、左に太くなれば範囲に収まるからです。太字の
ときだけ1ドット左から描画すればOKだと思います。

 WZと秀丸で確認しましたが、どちらもこのような仕様になっています。
 全角の一部の文字は左にはみでるか、欠けるかしてしまうんですけどね。

ぜひ、ご検討おねがいします。m(_ _)m





975 Re^2: 手前味噌(続き) コメント数:  3件
  かとちん  |  2001/01/15 (月) 11:21
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
さらにこのような継承図になっていまして、
TEditor
┗ TBaseEditor 基本となる汎用エディタ
┗ TTedditor Teddyスクリプト専用エディタ

TBaseEditorでは
・URL/MAILの関連付プログラムの起動制御方法プロパティ
・カーソル非表示化プロパティ
・ダブルクリックでパーサークラスに応じたワード選択
・縦スクロールバー制御方法プロパティ
・[SHIFT]+[INS]でPaste,[SHIFT]+[DEL]でCut、[INS]で上書/挿入切り替え、
複数行選択状態の[TAB]でインデント、[Shift]+[TAB]でアンインデント、
[Ctrl]+[{]でカッコの対応制御
・CR/EOF/TABの表示制御方法設定プロパティ
など、色々単体でほとんどイベント処理を書かなくても大抵の標準的なことは
やってくれるような使いやすいエディタにしていたりします。

ほとんど内部設計のツクリのこだわりの自慢だけで終わっている(^^;



974 Re^2: 手前味噌 コメント数:  0件
  かとちん  |  2001/01/15 (月) 11:19
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
> こんな工夫がしてあるぞ、みたいな自慢も遠慮無くやって下さい。
では遠慮なく自慢大会を。(^^;
Delphi支援機能のように、入力補完機能(ポップアップリスト)、
関数宣言表示機能(ポップアップヒント)がある、TEdditor派生クラスは
過去に例を見ないかも?

実在するファイル名があるとURL扱いと同じにしたり、
宣言セクションで漢字があると ANK 扱いなのに、
プログラムセクション内ではエラー文字列扱いになるという他、
最初のセクションが現れるまではすべてコメント扱いで、
[END]セクション後はすべてコメント扱いというように、
スクリプトの仕様にあわせて、EditorParser派生クラスをどう実装するかが
悩みどころ&面白味があって何とかエレガントに実装できました。

View以外にTeddyViewというプロパティを用意し、そのため TTedditorProp と
いう TEditorProp からの派生コンポも作成していたりします。
(つづく)



973 Re: 検索でヒットしないのはなぜ? コメント数:  1件
  本田勝彦  |  2001/01/15 (月) 00:21
 http://member.nifty.ne.jp/~katsuhiko
> 字(たとえばβとかбなど)を文字列検索してもうまくヒットしてくれません。
> 大文字の場合は大丈夫なんですが...(ちなみに、TEditorを使っている他のエ
> ディタでも試してみましたが、ほぼ全滅でした)。

確認出来ました。大文字小文字を区別して検索するとヒットするようですね。
原因は、Delphi 標準の AnsiUpperCase 関数が引数に β を与えるとBを
返してくるからということのようです。
大文字小文字を区別しない検索の場合はこれらの記号を特別扱いしてやらないと
駄目みたいです。
今度時間がとれたら、HtSearch.pas も対応してみたいと思います。



972 Re: 手前味噌 コメント数:  5件
  本田勝彦  |  2001/01/15 (月) 00:11
 http://member.nifty.ne.jp/~katsuhiko
> 手前味噌バリバリ!

見せて頂きましたよ。表示設定ダイアログが一番気合いが入っているような(^^;
teddy はまだゲットしていません。

こんな工夫がしてあるぞ、みたいな自慢も遠慮無くやって下さい。



971 検索でヒットしないのはなぜ? コメント数:  2件
  Tak   |  2001/01/14 (日) 20:48
はじめまして。TEditorにはいつもお世話になっています。

最近になって偶然気付いたのですが、ソースをいじらないでデフォルトのまま
コンパイルした場合、たとえばサンプルエディタでギリシャ/ロシア語の小文
字(たとえばβとかбなど)を文字列検索してもうまくヒットしてくれません。
大文字の場合は大丈夫なんですが...(ちなみに、TEditorを使っている他のエ
ディタでも試してみましたが、ほぼ全滅でした)。

初歩的な質問で申し訳ありませんが、解決策を教えていただければ幸いです。



970 手前味噌 コメント数:  6件
  かとちん  |  2001/01/14 (日) 02:07
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
手前味噌バリバリ!
Teddyというスクリプトのための専用エディタなので、
使い道は特化しているんですが良かったらお試し下さい。

TEditorを使用しての初めてちゃんと最後まで手がけた
プログラムだったりしますので嬉しくて、こんなところに
書き込んじゃいました。(^ー^;

私のHPの手作りプログラム− for Teddy にある、
Tedditor というものです。



969 Re^2: ルーラーの表示の不具合について コメント数:  0件
  kei   |  2001/01/14 (日) 00:19
> 私も以前この状況に陥ったことがありました。
> うろ覚えですが DrawLine の実装の中でBrush や Pen などを変えたときに、
> 遭遇したと思います。
>
> 現在最新版を使用していますが、keiさんのおっしゃる操作をやってみても
> その現象は出なくなりました。

なるほど、いろいろ試してみたいと思います。ありがとうございました。
最新版のサンプルでも似たような現象が確認できました。エディタのプロパティを開いて、ルーラーの表示を何度かオン、オフさせていると、ルーラーがちょっとおかしくなりました。
原因がわかりましたらまた、報告させていただきますね。



968 Re^5: 表示されていない領域の Token が取得できません コメント数:  0件
  本田勝彦  |  2001/01/14 (日) 00:16
 http://member.nifty.ne.jp/~katsuhiko
コメントどうもです。
ListInfoFromPos が virtual になってませんね(^^;
なおしときます。



967 Re^3: ルーラーといえば、、、 コメント数:  0件
  本田勝彦  |  2001/01/14 (日) 00:11
 http://member.nifty.ne.jp/~katsuhiko
> うーん、ルーラをクリックしたら、ルーラの表示色を選択するコントロールと
> 連動させたんですが、エディタカーソルだから、ルーラをクリックした感覚が
> 得られず、一見分かりにくいんですよね。
>
> ルーラをドラッグしたらドラッグ開始位置からドラッグ終了まで、全ての行の
> 同じ位置にブランクを挿入するといった機能を追加させようとしても、やっぱり
> 分かり難いんです〜。(^^;

なるほど。TEditorMouseCursorState に mcTopMargin つうのを増やして
それに対応すればよいですな。こちらは採用したいと思います。
ドキュメントも変えなければ(^^;





966 Re^2: ルーラーといえば、、、 コメント数:  1件
  かとちん  |  2001/01/13 (土) 23:17
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
> そういえばそうですね。でも特段何が出来るというワケではなさそうなので、
> 今後もそのままになりそうな気もします(^^;
うーん、ルーラをクリックしたら、ルーラの表示色を選択するコントロールと
連動させたんですが、エディタカーソルだから、ルーラをクリックした感覚が
得られず、一見分かりにくいんですよね。

ルーラをドラッグしたらドラッグ開始位置からドラッグ終了まで、全ての行の
同じ位置にブランクを挿入するといった機能を追加させようとしても、やっぱり
分かり難いんです〜。(^^;



965 Re^4: 表示されていない領域の Token が取得できません コメント数:  1件
  かとちん  |  2001/01/13 (土) 23:06
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
> このあたり、もう少し詳しく聞かせて頂けますか?
カーソル位置のトークンを常時 Label に表示するような機能を
アプリケーションで持たせたとして、そのカーソルがクライアン
ト領域にあろうとスクロールしないと見えないところにあろうと、
現在位置のトークンを取得しようとしても、現状は不可というのは
不便だと思うんです。

他の方法を用いようとすれば 自前でParser.Create, toEOFまでの
ループ内にNextToken しながら座表とマッチする場所を探し当てな
ければならないですよね。

逆にマイナス位置でも本当のエディタ領域を超えていなければ
現在の TopRow, TopCol に関わらず指定位置のトークンが
取得可能という仕様のほうが自由度があると思います。

MouseMoveと連携させてバー上は除外したいというのであれば、
しつこいようですが、
if (X > Editor.LeftMargin) and (Y > Editor.TopMargin) then
というイベントロジックで済みますよね。
Token関連メソッドの、ユーザのローカル的な使い方の選択の
1つの結果に過ぎないと思うんです。
「TokenXXX 関連の関数は、可視領域のみ有効です。」というのは、
やっぱり不便だと感じてやまないんです。



964 Re^2: wrapbyteについて コメント数:  0件
  本田勝彦  |  2001/01/12 (金) 00:34
 http://member.nifty.ne.jp/~katsuhiko
> 制御上、さらにここから限度桁として、
> この桁数を3で割ってみたり5で割ってみたりしているので
> それがうまく通るギリギリのところまでは耐えられると思います。

ご指摘の通りですね。行末禁則処理などを利用する場合は、5より小さい値にすると
無限ループに陥る可能性が高いです。(試してはいません)

5までは大丈夫ということを保証するワケではないので悪しからず。



963 Re: ルーラーといえば、、、 コメント数:  2件
  本田勝彦  |  2001/01/12 (金) 00:31
 http://member.nifty.ne.jp/~katsuhiko
> 全然関係ないのですが、そういえばルーラー機能がついたは良いのですが、
> TEditorCursors に、InRulerCursor なんてモノは追加されないのでしょうか。
> 現状はルーラー上にあっても、常にクライアント(mcClient)とおんなじですよね。

そういえばそうですね。でも特段何が出来るというワケではなさそうなので、
今後もそのままになりそうな気もします(^^;




962 Re^2: ルーラーの表示の不具合について コメント数:  0件
  本田勝彦  |  2001/01/12 (金) 00:30
 http://member.nifty.ne.jp/~katsuhiko
> うろ覚えですが DrawLine の実装の中でBrush や Pen などを変えたときに、
> 遭遇したと思います。

そういうことだったのですね。サンプルプロジェクトでは現象が出なかったので
ちょっと悩んでいました。

> 現在最新版を使用していますが、keiさんのおっしゃる操作をやってみても
> その現象は出なくなりました。

だと良いのですが、確認出来てないので(^^;



961 Re^3: 表示されていない領域の Token が取得できません コメント数:  2件
  本田勝彦  |  2001/01/12 (金) 00:26
 http://member.nifty.ne.jp/~katsuhiko
> case Char(Ord(TokenFromPos(Point(X, Y))) and
> BoolMask[(LeftMargin < X) and (TopMargin < Y)]) of

こういうのをイベントハンドラに記述するのがめんどかったというのが
最大の理由だったように思います。

> エディタのカーソルがどこにあっても、エディタ内容のどこからでも
> トークン情報が取得できる方が便利だと思うんですが..
> 例えば「使用している予約語検索」なんて機能が欲しいときに
> 後方検索が出来なくなってしまうんですけど。(^^;

このあたり、もう少し詳しく聞かせて頂けますか?



960 ルーラーといえば、、、 コメント数:  3件
  かとちん  |  2001/01/11 (木) 21:37
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
全然関係ないのですが、そういえばルーラー機能がついたは良いのですが、
TEditorCursors に、InRulerCursor なんてモノは追加されないのでしょうか。
現状はルーラー上にあっても、常にクライアント(mcClient)とおんなじですよね。



959 Re: wrapbyteについて コメント数:  1件
  かとちん  |  2001/01/11 (木) 21:22
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
MinWrapByte = 20;
の定数宣言をいじってみて確認されてはどうでしょうか?

制御上、さらにここから限度桁として、
この桁数を3で割ってみたり5で割ってみたりしているので
それがうまく通るギリギリのところまでは耐えられると思います。

でも、そんなに小さい桁数をどういった用途に使用されるのですか?
気になってみたりして。



958 Re^3: PosToRowCol の逆ってあると思うんですけど。。。 コメント数:  0件
  かとちん  |  2001/01/11 (木) 21:15
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
> 文字と文字の間なのか、文字の頭かによって変わりますので、その辺も考慮して頂け
> ればと思います。
御意。<(>_<)



957 Re: ルーラーの表示の不具合について コメント数:  6件
  かとちん  |  2001/01/11 (木) 21:07
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
keiさん、こんにちわ。
> 以下の操作を行うとルーラーの表示がおかしくなります。
>(中略)...
> 対応していただければ幸いです。では。

私も以前この状況に陥ったことがありました。
うろ覚えですが DrawLine の実装の中でBrush や Pen などを変えたときに、
遭遇したと思います。

現在最新版を使用していますが、keiさんのおっしゃる操作をやってみても
その現象は出なくなりました。



956 Re^2: 表示されていない領域の Token が取得できません コメント数:  3件
  かとちん  |  2001/01/11 (木) 20:48
 http://pc2.techno-ware-unet.ocn.ne.jp/~kato
レスありがとうございます。
> これは、サンプルでマウスカーソル位置のトークンを取得してマウスカーソルを
> 変化させた時、レフトマージン内では機能して欲しくないという理由で
> このような実装になったと思います。
> その後特に不都合も感じなかったのでそのままになってます。

サンプルの例でいえば、事前に判断するだけで良いと思うのですが。

>procedure TForm2.Editor3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
const
BoolMask: array[Boolean] of Integer = (0, $FF);
>begin
> if Sender is TEditor then
> with Sender as TEditor do
case Char(Ord(TokenFromPos(Point(X, Y))) and
BoolMask[(LeftMargin < X) and (TopMargin < Y)]) of
> toUrl:
> begin


エディタのカーソルがどこにあっても、エディタ内容のどこからでも
トークン情報が取得できる方が便利だと思うんですが..
例えば「使用している予約語検索」なんて機能が欲しいときに
後方検索が出来なくなってしまうんですけど。(^^;



955 wrapbyteについて コメント数:  2件
  shugo   |  2001/01/10 (水) 23:52
はじめまして
heditを試しに使わせてもらいました。
質問させてほしいのですが、
wrapbyteを20以下に出来ない仕様のようですが、
どうしても20以下にしたいのですがどうしようもないのでしょうか?



954 ルーラーの表示の不具合について コメント数:  7件
  kei   |  2001/01/10 (水) 05:39
本田さんこんあ**は。
TEditorを使ったソフトを公開しているのですが、ユーザーの方から次のようなメールをいただきましたので報告させていただきます。以下の操作を行うとルーラーの表示がおかしくなります。

> - ルーラーの文字色を変更して
>
> - ルーラー表示・行数表示をOFFに,
>
> - ルーラー表示をOFFにして,行数表示はON に
> - ルーラー表示をON にして,行数表示はOFFに

*何も起こらない場合は上記2項繰り返し

対応していただければ幸いです。では。



953 Re^2: TEditor で描画を止めるには? コメント数:  0件
  DR-X   |  2001/01/10 (水) 04:48

>Lines.BeginUpdate, EndUpdate でサンドイッチしてもだめですか?

 あ、ホントだ。前に一度試していたんですけどね。勘違いしていたようです。

>EndUpdate での Invalidate が気に入らないと言われそうですが(^^;

 変更があるところだけ描画していただくのが最高なんですけど、とりあえずは
DoubleBuffered を True で対応したいと思います。

 ありがとうございました。m(_ _)m






952 Re: TEditor で描画を止めるには? コメント数:  1件
  本田勝彦  |  2001/01/09 (火) 23:40
 http://member.nifty.ne.jp/~katsuhiko
Lines.BeginUpdate, EndUpdate でサンドイッチしてもだめですか?
EndUpdate での Invalidate が気に入らないと言われそうですが(^^;

> 最後になりましたが、今年も、よろしくお願いいたします。m(_ _)m

こちらこそ、よろしくお願いいたします。



951 Re: 表示されていない領域の Token が取得できません コメント数:  4件
  本田勝彦  |  2001/01/09 (火) 23:35
 http://member.nifty.ne.jp/~katsuhiko
> このマージン内かのチェックはどこか別の処理で不具合になっちゃうのですか?

これは、サンプルでマウスカーソル位置のトークンを取得してマウスカーソルを
変化させた時、レフトマージン内では機能して欲しくないという理由で
このような実装になったと思います。
その後特に不都合も感じなかったのでそのままになってます。