~katsuhiko メッセージボード |
| back | 351-400 | 401-450 |
451-500 |
| 450 | そろそろ500 | コメント数: 0件 |
| 本田勝彦 | | 2000/04/08 (土) 01:29 | |
| http://member.nifty.ne.jp/~katsuhiko | ||
| 発言になろうとしています。 過去ログで掲示されている 001-300 の発言を削除しようと思います。 今後の皆さんの発言番号がどうなって行くのかちょっと不安です。 こうやるとええよんみないなのありましたら、教えてね(^^; |
||
| 449 | Re: TEditorの安定版など | コメント数: 0件 |
| 本田勝彦 | | 2000/04/08 (土) 01:16 | |
| http://member.nifty.ne.jp/~katsuhiko | ||
| >TEditorの未来バージョンで採用されるであろう縦書き機能ががそのへんを解決してくれたらいいなあと勝手に思っております(^^;)。 > ちなみに私が今使用している縦書き可能なエディタはフリーの「CoolMint Yellow」です( http://www.webinter.net/pbd/)。 頑張りまぁ〜す(^^) CoolMint Yellow は見たことが無かったので、参考に させて貰います。情報どうもです。 |
||
| 448 | Re: [EOF]から行頭にワープしてしまう | コメント数: 0件 |
| 本田勝彦 | | 2000/04/08 (土) 01:12 | |
| http://member.nifty.ne.jp/~katsuhiko | ||
| > そこで、最後の行の[EOF]の横でCtrl+右を押すと、何故かキャレットが > 最後の行の行頭に移動してしまいます(^^; > > バグか仕様かはわかりませんが、バグでしたら直っていた方がよさそうな気がします。(^^; バグのような、仕様のような(^^;直してみますです。todo.txt に書いて置きます。 |
||
| 447 | Re^4: TEditor.Margin.Left & Top と Caret | コメント数: 0件 |
| 本田勝彦 | | 2000/04/08 (土) 01:10 | |
| http://member.nifty.ne.jp/~katsuhiko | ||
| なるほど〜\(^o^)/そうかこうすれば良かったのか・・・ 自分の書いたVCLが色々と拡張されていくのを見るのはとっても嬉しいですね。 で、重箱隅をひとつ。 > procedure MyEditor.CaretEndUpdate; > const > HideFlag: Boolean = false; ここにフラグを置くと、MyEditor のインスタンスが複数ある場合、破綻します。 フィールドデータとして保持する仕様にしましょう。 以前ハマったモンね。 |
||
| 446 | Re^3: (疑似)トリプルクリックで段落を選択したい(つづき) | コメント数: 0件 |
| 本田勝彦 | | 2000/04/08 (土) 01:04 | |
| http://member.nifty.ne.jp/~katsuhiko | ||
| > > ですので、ご希望の機能を実現するためには、Caret.SelMove プロパティを > > False にして、ドラッグ&ドロップを実装する必要があります。 ウソですね^^; 「Caret.SelDragMode プロパティを dmManual にして」 でした。 が、解決されたようで良かったです。 |
||
| 445 | Re^3: (疑似)トリプルクリックで段落を選択したい(つづき) | コメント数: 0件 |
| 網代太郎 | | 2000/04/07 (金) 19:03 | |
| http://plaza27.mbn.or.jp/~ajitaro/ | ||
| > > で、サンプルにある EndDrag イベントハンドラを > > > > if (Sender is TEditor) and not (TEditor(Sender).Dragging) then > > TEditor(Sender).CleanSelection; Unit2のサンプルを流用させていただいたところ、(疑似)トリプルクリックだけで なく、ダブルクリックによる1語選択もできなくなってしまいました。 そこで、EndDrag イベントハンドラ自体を削除してしまったところ、うまくいき ました。 CleanSelectionは、(疑似)トリプルクリックのコードの 方で処理しました。 ありがとうございました。 |
||
| 444 | Re^2: (疑似)トリプルクリックで段落を選択したい(つづき) | コメント数: 2件 |
| 網代太郎 | | 2000/04/07 (金) 10:49 | |
| http://plaza27.mbn.or.jp/~ajitaro/ | ||
| > TEditor の選択領域の移動機能がじゃましてるんですね。 そのようですね。以前のバージョンのETditorでは出来ていましたから(コーディング は、先に掲示板に書き込んだものとは、少し違いましたが)。 > ですので、ご希望の機能を実現するためには、Caret.SelMove プロパティを > False にして、ドラッグ&ドロップを実装する必要があります。 > で、サンプルにある EndDrag イベントハンドラを > > if (Sender is TEditor) and not (TEditor(Sender).Dragging) then > TEditor(Sender).CleanSelection; ありがとうございます。試してみます。 |
||
| 443 | Re^4: TEditor.Margin.Left & Top と Caret | コメント数: 0件 |
| てらお | | 2000/04/07 (金) 09:28 | |
| http://www2s.biglobe.ne.jp/~t-susumu/toclip/ | ||
| K2さん、こんにちは。てらおです。 > procedure MyEditor.CaretEndUpdate; > const > HideFlag: Boolean = false; > var > P: TPoint; > ・ > ・ > ・ ふむふむ、なるほど。 早速、試してみました。 バッチリOKです〜 (^.^) |
||
| 442 | Re^3: TEditor.Margin.Left & Top と Caret | コメント数: 2件 |
| K2 | | 2000/04/07 (金) 08:58 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| > K2です。 げ、キャレットの位置の取得を忘れてる(^^; inheritedの次の行に GetCaretPos(P); を入れてください(^^; procedure MyEditor.CaretEndUpdate; const HideFlag: Boolean = false; var P: TPoint; begin inherited; GetCaretPos(P); if (P.X >= FMargin.FLeft) and (P.Y >= FMargin.FTop) then begin if HideFlag then begin ShowCaret(Handle); end; HideFlag := false; end else begin if not HideFlag then begin HideCaret(Handle); end; HideFlag := true; end; end; |
||
| 441 | Re^2: TEditor.Margin.Left & Top と Caret | コメント数: 3件 |
| K2 | | 2000/04/07 (金) 08:51 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| K2です。 > > 「マージン」なんだからキャレットも消えてくれると助かるのですが、 > > 何とかならないでしょうか? CaretEndUpdateをOverrideして、キャレットの位置がマージン内 だったらHideCaret、それ以外の場合はShowCaretすれば実現できます。 ただし、HideCaretやShowCaretは、呼んだ数をカウントされるので、 一度Hideしたら、2度はHideしないようにしなきゃなりません。 うちは、HEditorを直接改造していますが、overrideでやるなら procedure MyEditor.CaretEndUpdate; const HideFlag: Boolean = false; var P: TPoint; begin inherited; if (P.X >= FMargin.FLeft) and (P.Y >= FMargin.FTop) then begin if HideFlag then begin ShowCaret(Handle); end; HideFlag := false; end else begin if not HideFlag then begin HideCaret(Handle); end; HideFlag := true; end; end; と、こんなんでいけるんじゃないかな…… 動作確認はしていません。 それ以外に変更しなきゃならないかもしれませんが、うまく動作しなかったら ごめんなさいね。 |
||
| 440 | Re^3: MSゴシック9ポイントのときの改行マーク | コメント数: 0件 |
| K2 | | 2000/04/07 (金) 08:36 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| K2です。 > ちなみにK2さんが紹介してくださったやつも試してみましたが、何故かはみ出して > しまってうまくいきませんでした(^^; XとYを、イベントにわたってきたXとYをそのまま使ってください。 オリジナルHEditorソースでは、一旦別の値に書き換えていますから、 そのまま描画部分を入れ替えただけだと、うまく描画できません。 というか、試行錯誤はちょっとはしましょうね(^^; |
||
| 439 | [EOF]から行頭にワープしてしまう | コメント数: 1件 |
| ほしけん | | 2000/04/07 (金) 08:07 | |
| http://www.hosiken.w3.to/ | ||
| こんにちは、ほしけんです。 今さっき気づいたことですなのですが、TEditorはCtrl+左右キーで 単語ごとにカーソルを移動させることが出来ますよね。 そこで、最後の行の[EOF]の横でCtrl+右を押すと、何故かキャレットが 最後の行の行頭に移動してしまいます(^^; バグか仕様かはわかりませんが、バグでしたら直っていた方がよさそうな気がします。(^^; |
||
| 438 | Re^2: MSゴシック9ポイントのときの改行マーク | コメント数: 1件 |
| ほしけん | | 2000/04/07 (金) 08:01 | |
| http://www.hosiken.w3.to/ | ||
| > マークにつきましては、「好み」の要素が大きいと思いましたので、 > DrawRetMark メソッドが virtual になっています。override するなり > 直接 HEditor.pas を書き換えるなどやって見ていただけませんか? 結局、ソースの数値を直接書き換えて2〜3ドットほど長くさせることにしました。 (本当はoverrideさせようと思ったんですが、どうもうまくいかなくて あきらめました。(Delphiに関してはまだ若葉マークなので(T_T))) ちなみにK2さんが紹介してくださったやつも試してみましたが、何故かはみ出して しまってうまくいきませんでした(^^; |
||
| 437 | TEditorの安定版など | コメント数: 1件 |
| ゆうきひろ | | 2000/04/07 (金) 06:11 | |
| http://www.remus.dti.ne.jp/~kinpotwn/mozart/Nami2000.htm | ||
| ↑というような話題がしばらく前にFDELPHIであったようですが、確かに現在のバージョンあたりをそういうものにしてもよいような気がします。個人的には画面分割機能はいらないですけど。 文書を作成するエディタとしては、もう「秀丸」で必要かつ十分だと思っていますのでTEditorを使って通常のエディタ(たとえばメモの拡張版のようなもの)を作成することは私の場合はないです(HTMLエディタは作ったけど)。ただ、オンライン上の小説等を読むときは縦書き機能が欲しいなと思うことがあります。縦書き表示できるエディタをいくつか試してみましたけど、どれも表示のスムーズさがイマイチ。横スクロールは縦スクロールに比べどうしても違和感が残ります。TEditorの未来バージョンで採用されるであろう縦書き機能ががそのへんを解決してくれたらいいなあと勝手に思っております(^^;)。 ちなみに私が今使用している縦書き可能なエディタはフリーの「CoolMint Yellow」です( http://www.webinter.net/pbd/)。 いや、俺の使っているエディタの方が縦書き表示はスムーズだぞ、といういような方がいらっしゃましたらぜひ教えてくださいね。 |
||
| 436 | Re^10: 印刷機能に関して | コメント数: 0件 |
| 本田勝彦 | | 2000/04/07 (金) 01:20 | |
| http://member.nifty.ne.jp/~katsuhiko | ||
| > 一応JPEGで再アップしてみました あら、スミマセンね。今度は見られましたです。 > TStringsPrinterはDrawTextを使っているので固定ピッチフォントを指定していても > 半角:全角が1:2で描画されるとは限らないということですか そうです。以前 nifty で ExtTextOut を教えて頂いたときのログでは、要するに フォントの問題なんですね。 TTextMetric 構造体の tmAveCharWidth と tmMaxCharWidth が1対2 になるフォントはOKなのですが、それ以外は×なんです。 固定ピッチフォントのくせに、フォントのサイズや、ボールドかどうかによって tmAveCharWidth と tmMaxCharWidth の比率が変わるのです。最初は悩みました もん(^^; 例えば、MS ゴシック では Regular 9, 12, 15, 18, 30 などはOKですが、 それ以外のフォントサイズやボールドにするとだめという具合です。 |
||
| 435 | Re^9: 印刷機能に関して | コメント数: 1件 |
| 森田良平 | | 2000/04/06 (木) 23:57 | |
| 一応JPEGで再アップしてみました http://super.fureai.or.jp/~jrm/strprint12_preview_edit.jpg http://super.fureai.or.jp/~jrm/strprint12_preview_print.jpg > で、TEditor の表示と TStringsPrinter の表示ですが、これは元来別物ですよ。 > 使っている API が ExtTextOut と DrawText なので、違って表示されます。 TStringsPrinterはDrawTextを使っているので固定ピッチフォントを指定していても 半角:全角が1:2で描画されるとは限らないということですか |
||
| 434 | Re: TEditor.Margin.Left & Top と Caret | コメント数: 4件 |
| 本田勝彦 | | 2000/04/06 (木) 23:54 | |
| ようこそいらっしゃいまし。(^^) > スクロールバーでスクロールすると、X < Margin.Left, Y < Margin.Top > の場所でも、キャレットが点滅したままになります。 > 行番号やルーラーを表示させているとルーラーの上で点滅してしまいます。 うむ〜(^^;痛いところを(^^; 開発初期の頃、参考にしていたD2のエディタがそうなっていたんで、 まぁいっか〜という仕様のまま現在に至っております。 D3になって、ボーランドの開発部隊もどうすることも出来なくて パネルを貼り付けたんだろうな〜と邪推していました。 > 「マージン」なんだからキャレットも消えてくれると助かるのですが、 > 何とかならないでしょうか? 「逃げ」なんですけどね、同じ色のパネルを貼ってやって下さい。 |
||
| 433 | Re: (疑似)トリプルクリックで段落を選択したい(つづき) | コメント数: 3件 |
| 本田勝彦 | | 2000/04/06 (木) 23:45 | |
| > ところが、選択された部分をクリックすると、一瞬だけ、段落全体が選択状態になった > ように見えるのですが、すぐに選択状態が解除されてしまいます。 TEditor の選択領域の移動機能がじゃましてるんですね。 選択領域で WM_LBUTTONDOWN されると InitSelDrag されます。 その状態で(ドラッグしていない状態)WM_LBUTTONUP すると CanselSelDrag されます。 ですので、ご希望の機能を実現するためには、Caret.SelMove プロパティを False にして、ドラッグ&ドロップを実装する必要があります。 で、サンプルにある EndDrag イベントハンドラを if (Sender is TEditor) and not (TEditor(Sender).Dragging) then TEditor(Sender).CleanSelection; としてみて下さい。試してはいないですが(^^; |
||
| 432 | Re^8: 印刷機能に関して | コメント数: 2件 |
| 本田勝彦 | | 2000/04/06 (木) 23:27 | |
| > 私の環境でも発生したので報告 > http://super.fureai.or.jp/~jrm/strprint12_preview_edit.png > と、TEditorでは表示されるものの > http://super.fureai.or.jp/~jrm/strprint12_preview_print.png > TStringsPrinterのプレビューではこのように > ※ MS ゴシック : 10pt お手数をお掛けいたいしました。が、.png は見られないんです(^^; で、TEditor の表示と TStringsPrinter の表示ですが、これは元来別物ですよ。 使っている API が ExtTextOut と DrawText なので、違って表示されます。 プレビューと印刷されたモノは一致すると思いますが。 このツリーの元ネタの「詰まって表示される」というのもそういうことだった のかなぁ? > あと、TEditorのUrlCharsにデフォルトで'+'が入っていないのが少し気になりました 今度追加しておきますね。情報どうもです。(^^) |
||
| 431 | TEditor.Margin.Left & Top と Caret | コメント数: 5件 |
| 稀杜(きと) | | 2000/04/06 (木) 19:46 | |
| http://hp.vector.co.jp/authors/VA017148/ | ||
| こんにちは、稀杜です。Niftyではお世話になっています。 TEditorは大変すばらしいコンポで、活用させていただいてます。 さて本題ですが、 スクロールバーでスクロールすると、X < Margin.Left, Y < Margin.Top の場所でも、キャレットが点滅したままになります。 行番号やルーラーを表示させているとルーラーの上で点滅してしまいます。 「マージン」なんだからキャレットも消えてくれると助かるのですが、 何とかならないでしょうか? |
||
| 430 | (疑似)トリプルクリックで段落を選択したい(つづき) | コメント数: 4件 |
| 網代太郎 | | 2000/04/06 (木) 12:19 | |
| http://plaza27.mbn.or.jp/~ajitaro/ | ||
| ところが、選択された部分をクリックすると、一瞬だけ、段落全体が選択状態になった ように見えるのですが、すぐに選択状態が解除されてしまいます。 キャレットは、段落の一番最後に移動します。 ちなみに、a,bの2行を SelStart := 0; SelLength := 10; と変更しても、同様に、先頭から半角10文字分が一瞬、選択状態になったように 見えますが、すぐ解除されてしまいます。 キャレットは10文字目に移動します。 したがって、このa,bの2行自体には問題がないと思われます。 何か良い方法にお心当たりがございましたら、ご教示いただければ幸いです。 |
||
| 429 | (疑似)トリプルクリックで段落を選択したい | コメント数: 0件 |
| 網代太郎 | | 2000/04/06 (木) 12:17 | |
| http://plaza27.mbn.or.jp/~ajitaro/ | ||
| 本田さん、いつもお世話になっております。 いつも恐縮ですが、また質問させてください。 編集中のテキストをダブルクリックして1語を選択したあと、選択された部分をもう 一度クリックすると、その部分を含む1段落全体(Lines単位の1行全体)を選択できる ようにしたいのです(秀丸のように)。 そこで、次のようにコーディングしました。 procedure TLogoAppForm.Editor1DblClick(Sender: TObject); //TEditor Help のサンプルコードより var aPos: TPoint; C: Char; begin GetCaretPos(aPos); C := Editor1.TokenFromPos(aPos); if (C = toUrl) or (C = toMail) then Editor1.SelectTokenFromPos(aPos) else Editor1.SelectWordFromPos(aPos); end; procedure TLogoAppForm.Editor1Click(Sender: TObject); var aPos: Tpoint; aRow, aCol: Integer; begin GetCaretPos(aPos); with Editor1 do begin PosToRowCol(aPos.x, aPos.y, aRow, aCol, false); if IsSelectedArea(aRow, aCol) then begin SelStart := CharFromPos(aPos) - ColToChar(aRow, aCol);//a SelLength := Length(Lines[RowToLines(aRow)]);//b end; end; end; (つづく) |
||
| 428 | Re^9: MSゴシック9ポイントのときの改行マーク | コメント数: 0件 |
| K2 | | 2000/04/06 (木) 08:12 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| K2です。 > > 何とかやってみますので、左マージンへのBMP描画のやり方を教えて下さい。 > > 基本的にDelphi初心者ですもので。 > > マークジャンプってそこまで実装するんですか。ん゛〜かなりメンドイような(^^; > 以前まゆりんさんが公開されていた行番号表示コンポと同じ要領になると思います。 マークジャンプはK2Editorにも実装していますが、現在はアプリ側で マーク行の管理を行っています。マークの描画よりも、その行数を管理 するのが難しいです。マーク行の上で行が追加されたらマーク位置は ずらさないといけないし、この部分が大変です。 EditorStringListの1ビットをマークに割り当てると、割合簡単にできる と思います。が、HEditorの中身をいじることになってちょっと高度です。 |
||
| 427 | Re^7: 印刷機能に関して | コメント数: 3件 |
| 森田良平 | | 2000/04/06 (木) 01:47 | |
| 私の環境でも発生したので報告 http://super.fureai.or.jp/~jrm/strprint12_preview_edit.png と、TEditorでは表示されるものの http://super.fureai.or.jp/~jrm/strprint12_preview_print.png TStringsPrinterのプレビューではこのように ※ MS ゴシック : 10pt あと、TEditorのUrlCharsにデフォルトで'+'が入っていないのが少し気になりました |
||
| 426 | Re^8: MSゴシック9ポイントのときの改行マーク | コメント数: 1件 |
| 本田勝彦 | | 2000/04/05 (水) 23:57 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > 何とかやってみますので、左マージンへのBMP描画のやり方を教えて下さい。 > 基本的にDelphi初心者ですもので。 マークジャンプってそこまで実装するんですか。ん゛〜かなりメンドイような(^^; 以前まゆりんさんが公開されていた行番号表示コンポと同じ要領になると思います。 番号の文字列を描画するかわりに、見せたいBMPを該当する行位置に描画する というパターンになると思います。 描画は、Canvas.Draw(X, Y, Bitmap); で行けます。ヘルプのままだぞ(^^;;;; |
||
| 425 | Re^2: TEditor ver 1.54 | コメント数: 0件 |
| 本田勝彦 | | 2000/04/05 (水) 23:51 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > 早速頂きました。ありがとうございます。 > カーソルは、良い感じです。 どもども(^^) リンクの件ではありがとうございました。 |
||
| 424 | Re^7: MSゴシック9ポイントのときの改行マーク | コメント数: 2件 |
| うらら | | 2000/04/05 (水) 16:58 | |
| > ん゛〜。こゆのは、アプリケーションで実装してくらはい(^^; 何とかやってみますので、左マージンへのBMP描画のやり方を教えて下さい。 基本的にDelphi初心者ですもので。 |
||
| 423 | Re: TEditor ver 1.54 | コメント数: 1件 |
| kmth | | 2000/04/05 (水) 03:11 | |
| http://www3.cds.ne.jp/~kmth/software/ | ||
| 早速頂きました。ありがとうございます。 カーソルは、良い感じです。 |
||
| 422 | TEditor ver 1.54 | コメント数: 2件 |
| 本田勝彦 | | 2000/04/05 (水) 00:49 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| になりました。 マウスカーソルがもうひとつ増えました。ドラッグ中にコントロールキーを 押すとカーソルが変わるようになりました。 また、エスケープキーによるドラッグの中断も実装されました。 |
||
| 421 | Re^6: MSゴシック9ポイントのときの改行マーク | コメント数: 3件 |
| 本田勝彦 | | 2000/04/05 (水) 00:47 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > > マークジャンプとはどんなものでしょう? > > DelphiのIDEにもありますが、Ctrl+K+(No)で行を記憶して、Ctrl+Q+(No) > で復帰するものです。(Delphiでは「しおり操作」と書いてあります) > エディタの元祖「WordStar」から始まったものです。 ん゛〜。こゆのは、アプリケーションで実装してくらはい(^^; |
||
| 420 | Re^6: 印刷機能に関して | コメント数: 4件 |
| 本田勝彦 | | 2000/04/05 (水) 00:45 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > よく見ると、ぷれびゅーでもズレますね。 ウチではずれてないんですけど・・・(^^; > エディタと同じように 半角:全角を1:2の固定ピッチで > きれいに描画、印刷する方法はないでしょうか? > どうも半角スペースや全角スペースを入れると、 > 文字間サイズが自動調整されている気がするのですが・・・。 > MS ゴシック 9/10ポイントで 確認しました。 なんでかな〜 |
||
| 419 | Re^5: 印刷機能に関して | コメント数: 5件 |
| Kou | | 2000/04/04 (火) 18:50 | |
| > 色々試しているのですが、Win95, NEC-MultiWriter1000, 標準プリンタドライバ > という環境ではご指摘の現象が出ていません。 よく見ると、ぷれびゅーでもズレますね。 エディタと同じように 半角:全角を1:2の固定ピッチで きれいに描画、印刷する方法はないでしょうか? どうも半角スペースや全角スペースを入れると、 文字間サイズが自動調整されている気がするのですが・・・。 MS ゴシック 9/10ポイントで 確認しました。 |
||
| 418 | Re^5: MSゴシック9ポイントのときの改行マーク | コメント数: 4件 |
| うらら | | 2000/04/04 (火) 09:13 | |
| > マークジャンプとはどんなものでしょう? DelphiのIDEにもありますが、Ctrl+K+(No)で行を記憶して、Ctrl+Q+(No) で復帰するものです。(Delphiでは「しおり操作」と書いてあります) エディタの元祖「WordStar」から始まったものです。 |
||
| 417 | Re^4: 印刷機能に関して | コメント数: 6件 |
| 本田勝彦 | | 2000/04/04 (火) 00:56 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| 色々試しているのですが、Win95, NEC-MultiWriter1000, 標準プリンタドライバ という環境ではご指摘の現象が出ていません。 皆さんのところではいかがでしょう?情報がありましたらよろしくお願いいたします。 |
||
| 416 | Re^4: MSゴシック9ポイントのときの改行マーク | コメント数: 5件 |
| 本田勝彦 | | 2000/04/04 (火) 00:50 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| でかい改行マークは嫌いなんです。なんかこうどぉぅだぁって感じが 好きでないので。 ニコちゃんマークのビットマップや MIFES の改行マークのようなビットマップを 表示することも DrawRetMark を override すれば出来るんですよね。 マークジャンプとはどんなものでしょう? |
||
| 415 | Re^3: MSゴシック9ポイントのときの改行マーク | コメント数: 6件 |
| うらら | | 2000/04/03 (月) 18:50 | |
| > 改行マークに関しては、昔、改善依頼を出したのですが、同じ > 理由で却下されました。しかし、MSゴシックを使う人が多いので、 > やっぱり気になると思いますよ。 同感です。私も何とかしたいな〜とは思っているのですが、まだ手が出せる状況 ではないので、指くわえて待っています。 プロパティでの設定で、低速(リアル)or高速描画を選べれば最高ですが(^^ゞ あと、将来で結構ですので、マークジャンプを実装していただければ幸いです。(汗;) |
||
| 414 | Re^2: MSゴシック9ポイントのときの改行マーク | コメント数: 7件 |
| K2 | | 2000/04/03 (月) 13:03 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| K2です。 改行マークに関しては、昔、改善依頼を出したのですが、同じ 理由で却下されました。しかし、MSゴシックを使う人が多いので、 やっぱり気になると思いますよ。 好みの要素も大きいですが、ちゃんと表示されていさえすれば、あまり 気にしない人も多いのでは? ちなみに、うちでは以下のように描いています。 MoveTo(X + ColWidth div 2, Y + 2); LineTo(X + ColWidth div 2, Y + FFontHeight - 3); LineTo(X + ColWidth div 2 + 3, Y + FFontHeight - 6); MoveTo(X + ColWidth div 2, Y + FFontHeight - 3); LineTo(X + ColWidth div 2 - 3, Y + FFontHeight - 6); 起点は、DrawRetMarkにわたったX,Yをそのまま使っています。 これが原因で描画が遅くなるという気もしませんが…… |
||
| 413 | Re: MSゴシック9ポイントのときの改行マーク | コメント数: 10件 |
| 本田勝彦 | | 2000/04/03 (月) 01:25 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > 例えば、フォントにMSゴシック9ポイントなどの12ドット文字を指定したときに、 > 改行マークの矢印の矢が短くなりすぎて矢印に見えにくなってしまうのですが、 > もう少し、矢印の矢を長くできないでしょうか。 マークにつきましては、「好み」の要素が大きいと思いましたので、 DrawRetMark メソッドが virtual になっています。override するなり 直接 HEditor.pas を書き換えるなどやって見ていただけませんか? メソッド内に、フォントのサイズによって描画方法を変えるための判別処理を 入れると、かなりスピードが落ちますので、CMFontChanged メッセージハンドラ も実装して、その中で改行マークを描画するためのパラメータを初期化するような 作りになっていると、良いと思います。 |
||
| 412 | Re^3: 印刷機能に関して | コメント数: 7件 |
| 本田勝彦 | | 2000/04/03 (月) 01:15 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > MSワードなんかと 同じような感じです。 > プレビューではそろっているが、印刷時に 文字間が自動調整されてずれる・・・。 > ワードでは オプションで文字間の自動調整をしない ようにすると、 > きれいに プレビューの通りにきれいに印刷できるのですが・・・。 Word は持ってないのですが、TStringsPrinter の印刷は TMetaFile に描画してそれを StretchDraw しているのでそうなるのかも しれません。 プレビューと一致させるために一番苦心した部分だったりするのですが、 その仕様がいけないのかもしれませんね。DivideStringsToMetaFiles で 行われている描画処理を Printer.Canvas.Handle に対して直接行うと どうなるでしょう? |
||
| 411 | Re^2: 印刷機能に関して | コメント数: 8件 |
| Kou | | 2000/04/02 (日) 23:44 | |
| > 何故でしょうねぇ(^^;;; > プリンターが持っていないフォントを指定して、プリンターが勝手に変えている > ということは考えられないのかなぁ。自信なしモード(^^; MSワードなんかと 同じような感じです。 プレビューではそろっているが、印刷時に 文字間が自動調整されてずれる・・・。 ワードでは オプションで文字間の自動調整をしない ようにすると、 きれいに プレビューの通りにきれいに印刷できるのですが・・・。 |
||
| 410 | MSゴシック9ポイントのときの改行マーク | コメント数: 11件 |
| ほしけん | | 2000/04/02 (日) 05:27 | |
| http://www.hosiken.w3.to/ | ||
| こんにちは、ほしけんです。TEditor愛用しております(^^)。 これはずっと前から気になっていたことなのですが(^^; 例えば、フォントにMSゴシック9ポイントなどの12ドット文字を指定したときに、 改行マークの矢印の矢が短くなりすぎて矢印に見えにくなってしまうのですが、 もう少し、矢印の矢を長くできないでしょうか。 動作的には全く支障ないのですが、小さすぎて見づらいのでぜひお願いします。m(__)m (僕はいつも9ポイントにしていたので、ずっと「ああいうマークなんだ」と思ってしまいました(^^;)) |
||
| 409 | Re: 印刷機能に関して | コメント数: 9件 |
| 本田勝彦 | | 2000/04/02 (日) 00:57 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > ところで、TStringsPrinterにおいて、印刷をした場合、 > 固定ピッチフォントでの印刷にも関わらず、文字間などが自動調整され、 > 文字がずれるような現象が出るのですが、 > これは どうにからないのでしょうか? 何故でしょうねぇ(^^;;; プリンターが持っていないフォントを指定して、プリンターが勝手に変えている ということは考えられないのかなぁ。自信なしモード(^^; |
||
| 408 | Re^4: TEditor ver 1.53 | コメント数: 0件 |
| 本田勝彦 | | 2000/04/02 (日) 00:53 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > え、できませんか? Win95,Win2Kとも解除できますよ。Win2Kは > 新しいK2Editorでしか試していませんが、Win95ではサンプルでも > OKでしたよ。 わかりました。D4以降は TDragObject がキーメッセージも処理していますね。 TDragObject も拡張出来る仕様かどうかはまだ不明ですが、拡張が可能であれば コントロールキーでカーソル変更も可能になると思います。 > 後は新井さんの「シェルプログラミング入門」がいいです。 これは持ってるんですが、持ってるだけという(^^; FDELPHI のサンプルなども お勉強中です。 |
||
| 407 | Re: Cプログラマがはまった罠 | コメント数: 0件 |
| K2 | | 2000/04/01 (土) 23:58 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| K2です。 > ご指摘のとおり、デバッガで追ったら私の単純ミスでした、elseにセミコロンを > 付けていたために、閉じてはいるんですが直後にまた開いていました(汗;) 原因がわかってよかったですね。 ifやelseの後ろは、できるだけbegin〜endブロックを書いた方が いいというのが僕の考えです。今回のようなミスも防げますし、 後から文を追加したときにもミスを少なくできます。 どうしてもelseの後などにbegin〜endをつけたくない場合は、 改行を入れないなどで、間違いを少なくします。 if XXX then A := B else A := C; 書き方に関しては、みなさんいろいろ信じる道があるので、すぐに 宗教戦争に発展してしまいがちで、あまり深入りはしません(^^; ちなみに、僕ももともとCから来たので、begin〜endの書き方が 多くのpascalプログラマと違うんですよ。 if XXX then begin A := B; end else begin A := C; end; これは、Cの時に if (XXX) { A = B; } else { A = C; } と書く癖があったからなんです。 ではでは。 |
||
| 406 | 印刷機能に関して | コメント数: 10件 |
| Kou | | 2000/04/01 (土) 23:38 | |
| お世話になります。 ところで、TStringsPrinterにおいて、印刷をした場合、 固定ピッチフォントでの印刷にも関わらず、文字間などが自動調整され、 文字がずれるような現象が出るのですが、 これは どうにからないのでしょうか? よろしくお願いいたします。 |
||
| 405 | Cプログラマがはまった罠 | コメント数: 1件 |
| うらら | | 2000/04/01 (土) 22:24 | |
| http://www.try-net.or.jp/~nabetech/ | ||
| こんにちは、K2さん > Freeしているつもりでも消えないのだから、普通に考えると、Freeして > いるルーチンを通っていないというのが思いつきます(^^; > デバッガでトレースしてみたらいかがでしょうか。 ご指摘のとおり、デバッガで追ったら私の単純ミスでした、elseにセミコロンを 付けていたために、閉じてはいるんですが直後にまた開いていました(汗;) procedure TMainForm.EditSplitExecute(Sender: TObject); begin if (ActiveMDIChild As TMDIChild).IsSplit then (ActiveMDIChild As TMDIChild).EndSplit else<-ここに';'を付けていた (ActiveMDIChild As TMDIChild).BeginSplit;//フラグに関係なく実行されていました end; C++言語仕様なら、コンパイルエラーで引っかかるんですが、m(..)m 画面分割はMDIでもちゃんと動作しております。お騒がせしました。 |
||
| 404 | Re: 画面分割の解除ソース2 | コメント数: 2件 |
| K2 | | 2000/04/01 (土) 10:17 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| K2です。 > >Splitter は消えるけどEditor が消えないのですか? > 両方消えません。 Freeしているつもりでも消えないのだから、普通に考えると、Freeして いるルーチンを通っていないというのが思いつきます(^^; デバッガでトレースしてみたらいかがでしょうか。 Freeしても消えないというのは、ちょっと考えられないんじゃ。 そのまま2面のTEditorとスピリッターが使い続けられるのなら、 なおさらです。 |
||
| 403 | Re^3: TEditor ver 1.53 | コメント数: 1件 |
| K2 | | 2000/04/01 (土) 10:14 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| K2です。 > ウチにあるサンプルでは解除出来ないようですが(^^; え、できませんか? Win95,Win2Kとも解除できますよ。Win2Kは 新しいK2Editorでしか試していませんが、Win95ではサンプルでも OKでしたよ。 > お勉強中ですが、難しいですね。 オランダのサイトに、割とよくできたコンポが落ちています。FDelphiや Delphi MLで検索すると見つけることができると思います。ちょっとバグ があるので、直さないといけないところがありますけど。 後は新井さんの「シェルプログラミング入門」がいいです。 > 人情ですね。でもなぁ、矩形選択領域の左右に移動する場合のことを考えると > あぁメンドイ(^^;;;; でしょうね。あまり無理も言えないので、気が向いたら挑戦していただ けるとうれしいです。 > > それから、過去ログで見たような気もするのですが、ドラッグ中にCTRL > > キーを押したとき、マウスカーソルにコピーの印をつけたいのですが、 > > TEditor が行うドラッグについては、可能だと思います。 うちでは、マニュアルドラッグでいくことが決定しているので、なんか 方法があるか探してみます。 |
||
| 402 | Re^3: TEditor ver 1.53 | コメント数: 0件 |
| 本田勝彦 | | 2000/04/01 (土) 00:33 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > WndProc をいじって見て下さい。SelDragging and VK_ESCAPE で ぶぶ〜。and VK_CONTROL ですね。 OnMouseMove でも、GetKeyState すれば行けるかもしれません。 試して見ます。 |
||
| 401 | Re^2: TEditor ver 1.53 | コメント数: 3件 |
| 本田勝彦 | | 2000/04/01 (土) 00:26 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > してみました。すると、懸案だったESCでのドラッグ解除ができるように > なっちゃうじゃないですか(^^v これで一般公開できます。Sampleでも > 6枚目だけはESCキーによる解除ができますね。 ウチにあるサンプルでは解除出来ないようですが(^^; > OLEドロップターゲットとOLEドロップソースをインプリメントして、 お勉強中ですが、難しいですね。 > ところで、矩形選択時のマウスによる選択領域の移動は、今後サポート > する予定はありますか? 矩形でもできて欲しいというのが人情だと > 思います(笑) 人情ですね。でもなぁ、矩形選択領域の左右に移動する場合のことを考えると あぁメンドイ(^^;;;; > それから、過去ログで見たような気もするのですが、ドラッグ中にCTRL > キーを押したとき、マウスカーソルにコピーの印をつけたいのですが、 TEditor が行うドラッグについては、可能だと思います。まだ試してませんが、 WndProc をいじって見て下さい。SelDragging and VK_ESCAPE で Windows.SetCursor すれば行けると思います。これ実装して見ようっかなぁ。 |
||