~katsuhiko メッセージボード |
| back | 301-350 | 351-400 |
401-450 |
| 400 | Re: 画面分割の解除ソース2 | コメント数: 0件 |
| 本田勝彦 | | 2000/04/01 (土) 00:10 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| 気になったところだけ。 BeginSplit の最初に if IsSplit then Exit; というのを入れて見て 下さい。これでもダメだとちょっとわかりません。 |
||
| 399 | Re: TEditor ver 1.53 | コメント数: 4件 |
| K2 | | 2000/03/31 (金) 12:57 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| K2です。 バージョンアップ、お疲れさまでした。 マージしてみました。動作はおおむね良好のようです。マウスカーソル の問題も、解決しました。 ついでに、Sampleの6枚目のエディタと同じように コーディングして、マルチTEditorの時にもマウスドラッグできるように してみました。すると、懸案だったESCでのドラッグ解除ができるように なっちゃうじゃないですか(^^v これで一般公開できます。Sampleでも 6枚目だけはESCキーによる解除ができますね。 Delphiにまかしてしまった方が、ドラッグの処理はきれいにできそうな 感じですね。 OLEドロップターゲットとOLEドロップソースをインプリメントして、 別プロセスのエディタにドラッグできればいうことないですが、まぁ そこまでやらなくてもいいか(^^; ところで、矩形選択時のマウスによる選択領域の移動は、今後サポート する予定はありますか? 矩形でもできて欲しいというのが人情だと 思います(笑) それから、過去ログで見たような気もするのですが、ドラッグ中にCTRL キーを押したとき、マウスカーソルにコピーの印をつけたいのですが、 可能でしょうか。 |
||
| 398 | 画面分割の解除ソース2 | コメント数: 4件 |
| うらら | | 2000/03/31 (金) 09:53 | |
| 続きです。 procedure TMDIChild.SplitterMoved(Sender: TObject); begin if IsSplit then Editor.Height := TSplitter(Sender).Top; end; procedure TMDIChild.EndSplit; begin Splitter.Free; Editor.Free; IsSplit := false; end; procedure TMDIChild.FormDestroy(Sender: TObject); begin if IsSplit then begin Splitter.Free; Editor.Free; end; end; >プログラマが分割しているかどうかの状態に責任を持っているんですよね。 はいそうです。責任持たなくて良いんでしょうか? >Splitter は消えるけどEditor が消えないのですか? 両方消えません。 よろしくお願いします。 |
||
| 397 | 画面分割の解除ソース1 | コメント数: 5件 |
| うらら | | 2000/03/31 (金) 09:47 | |
| 掲示板って文字数の制約激しいんですね、しかたがないので分割します。 こんな感じです。 public Editor: TEditor; Splitter : TSplitter; IsSplit : boolean; procedure SplitterMoved(Sender: TObject); procedure BeginSplit; procedure EndSplit; end; procedure TMDIChild.BeginSplit; begin Editor := TEditor.Create(Self); EditorProp1.Assign(Edit); EditorProp1.AssignTo(Editor); // イベントハンドラをコピーする SetProperties(Edit, Editor, tkMethods); // Parent 他 Editor.Parent := Edit.Parent; Editor.Align := alTop; Editor.Top := 0; Editor.Height := Height div 2; // 文字列オブジェクトの共有 Editor.ExchangeList(Edit); Editor.TopRow := Edit.TopRow; Edit.TopRow := Edit.TopRow + Editor.RowCount; Splitter := TSplitter.Create(Self); Splitter.Parent := Edit.Parent; //PageControl1.ActivePage; Splitter.Align := alTop; Splitter.Top := Editor.Top + Editor.Height; Splitter.Cursor := crVSplit; Splitter.OnMoved := SplitterMoved; IsSplit := true; end; |
||
| 396 | Re: 画面分割の解除 | コメント数: 6件 |
| 本田勝彦 | | 2000/03/31 (金) 00:51 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > 右向きカーソルの解決おめでとうございます。 どもです。ヘルプファイルの CursorState プロパティのトピックに OnMouseMove でマウスカーソルを変更するサンプルがありますので、 見てやって下さい。 > Splitter.Free; > Editor.Free; > IsSplit := false; この IsSplit := False; というのが、気になります。プログラマが分割 しているかどうかの状態に責任を持っているんですよね。 Splitter は消えるけどEditor が消えないのですか? Editor はどうやって取得しているのでしょう? もすこし情報が欲しいです。MDI ではうまく行かないのかなぁ |
||
| 395 | Re: 再びAtokでの単語登録 | コメント数: 0件 |
| 本田勝彦 | | 2000/03/31 (金) 00:41 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| あ、スミマセン。HEditor.pas を改造してね、ということだったんです(^^; で、今公開中の TEditor ver 1.53 ではデフォで WM_COPY メッセージハンドラ が実装されましたので、1.53 を貼り付けるだけで、うんまく行きます。 お試し下さいませ。 |
||
| 394 | 再びAtokでの単語登録 | コメント数: 1件 |
| ゆうきひろ | | 2000/03/30 (木) 21:50 | |
| http://www.remus.dti.ne.jp/~kinpotwn/mozart/Nami2000.htm | ||
| > WM_COPY メッセージハンドラを実装すると機能するようです。 > procedure WMCopy(var Message: TMessage); message WM_COPY; >というのを private 部の適当なところに追加して、実現部では、 > procedure TEditor.WMCopy(var Message: TMessage); > begin > if Selected then > CopyToClipBoard > else > Clipboard.AsText := ''; > end; ではコンパイルエラーになるので実現部を以下のように修正しましたが期待した効果が得られません。どこがおかしいのでしょ? procedure TForm1.WMCopy(var Message: TMessage); begin if TEditor1.Selected then TEditor1.CopyToClipBoard else Clipboard.AsText := ''; end; |
||
| 393 | 画面分割の解除 | コメント数: 7件 |
| うらら | | 2000/03/30 (木) 17:47 | |
| 右向きカーソルの解決おめでとうございます。 毎度お世話になります。ただ今、画面分割に挑戦しているのですが、分割は出来る のですが、元に戻すのが、うまく行きません。 Splitter.Free; Editor.Free; だけでは戻らないのでしょうか?、教えて下さい。 procedure TMDIChild.EndSplit; begin Splitter.Free; Editor.Free; IsSplit := false; end; procedure TMDIChild.FormDestroy(Sender: TObject); begin if IsSplit then begin Splitter.Free; Editor.Free; end; end; |
||
| 392 | TEditor ver 1.53 | コメント数: 5件 |
| 本田勝彦 | | 2000/03/29 (水) 23:08 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| 公開致しました。 ・選択領域ドラッグの仕様を変更し、左ボタンを押し下げた状態から、数ピク セルドラッグされた時点で開始されるようになった。 ・マウスで選択処理を行う時にキー入力を受け付けない仕様にした。 ・マウスによる選択やドラッグ時に上方向にもスクロールするようにした。 ・OnMouseMove イベントハンドラでマウスカーソル変更処理を行う場合の 不具合を解消した。 他にも新しい型・メソッド・プロパティ・メッセージハンドラが追加されています。 お試し下さい。 |
||
| 391 | Re^2: 現在カーソル行の別色表示 | コメント数: 0件 |
| KUBO | | 2000/03/29 (水) 00:32 | |
| http://homepage1.nifty.com/kubouchi/ | ||
| 本田さん、こんばんわ。 >描画関連においては、プロパティ設定によって処理を分岐するということは >極力避けて通りたいと考えています。遅くなるので(^^;) 了解しました。 方法を教わっただけでも有難いです。 |
||
| 390 | Re^3: 右向きカーソルとMouseMoveイベントの競合? | コメント数: 0件 |
| 本田勝彦 | | 2000/03/28 (火) 23:58 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > Editor.Caret.Cursors.DefaultCursor に設定することで回避できましたが、 > 的をはずしていますでしょうか。 あ、その手もありますね。 > 右向きのマウスカーソルについては気づきませんでしたが・・・。 現在、Caret.AutoCursor プロパティを追加する格好で改善中です。 |
||
| 389 | Re^2: 右向きカーソルとMouseMoveイベントの競合? | コメント数: 1件 |
| Kou | | 2000/03/28 (火) 22:26 | |
| > > 早速使わせて頂きましたが、URLジャンプ用のMouseMoveイベントを設定すると > > 右向きカーソルの表示が出来なくなります。 お世話になります。 私は、URL上でマウスカーソルをハンドポイントに設定していました。 その時、ちらつきが見られましたので、 Editor.Cursor で設定せず、 Editor.Caret.Cursors.DefaultCursor に設定することで回避できましたが、 的をはずしていますでしょうか。 右向きのマウスカーソルについては気づきませんでしたが・・・。 |
||
| 388 | Re: 右向きカーソルとMouseMoveイベントの競合? | コメント数: 2件 |
| 本田勝彦 | | 2000/03/28 (火) 00:46 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > 早速使わせて頂きましたが、URLジャンプ用のMouseMoveイベントを設定すると > 右向きカーソルの表示が出来なくなります。 > > これは仕様なんでしょうか?、使い方が悪いのでしょうか? ありゃ〜そうですね。TEditor が設定するカーソルとイベントハンドラでの設定が 激しいチラツキを発生させますね。 やっぱり、マウスカーソルには手を出すべきではなかったかな〜・・・ TEditor.Caret に AutoCursor プロパティを持たせるなどして、ユーザーが MouseMove イベントハンドラでカーソルを変更する場合はその設定を行って もらうようにするとか・・・くらいしか思いつきません。 何か矛盾した動作を実現しようとしてハマっているような気がする。 困ったな〜 |
||
| 387 | Re: 現在カーソル行の別色表示 | コメント数: 1件 |
| 本田勝彦 | | 2000/03/28 (火) 00:38 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| ようこそいらっしゃいまし。(^^) > 現在カーソル行の別色表示を要望したいです。 > (文字色、背景色) > > ソースをちょっと編集して、なんとかそうなるようにはしていますが、 > TEditorで対応していただけたら有難いです。 描画関連においては、プロパティ設定によって処理を分岐するということは 極力避けて通りたいと考えています。遅くなるので(^^;) DrawUnderLine を override して、アンダーライン描画 or 1行別色描画という 処理になると思いますので、TEditor を拡張して下さい。多分すでにそうされて いると思いますが(^^;) で、その際、プロパティ値を判別して描画処理を切り分けるのでは なく(これが遅さの原因)プロパティ値が変わった時点で、描画メソッドを アタッチし直す。あるいは、描画メソッドを持ったオブジェクト群を再構築する というような方法を採ると速度的に稼げるかもしれません。 試してみて下さい。うまく行ったら教えてね。(^^;;;;; |
||
| 386 | 右向きカーソルとMouseMoveイベントの競合? | コメント数: 3件 |
| うらら | | 2000/03/27 (月) 10:34 | |
| こんにちは、本田さん。 TEditor ver.1.52バージョンアップのメールありがとうございました。 早速使わせて頂きましたが、URLジャンプ用のMouseMoveイベントを設定すると 右向きカーソルの表示が出来なくなります。 これは仕様なんでしょうか?、使い方が悪いのでしょうか? 教えて下さい。 |
||
| 385 | 現在カーソル行の別色表示 | コメント数: 2件 |
| KUBO | | 2000/03/27 (月) 07:03 | |
| http://homepage1.nifty.com/kubouchi/ | ||
| 皆さん、はじめまして。 本田さん、すばらしいコンポーネント有難うございます。この場を借りて お礼申し上げさせていただきます。 現在カーソル行の別色表示を要望したいです。 (文字色、背景色) ソースをちょっと編集して、なんとかそうなるようにはしていますが、 TEditorで対応していただけたら有難いです。 |
||
| 384 | Re^3: Atokでの単語登録 | コメント数: 0件 |
| ゆうきひろ | | 2000/03/27 (月) 03:19 | |
| http://www.remus.dti.ne.jp/~kinpotwn/mozart/Nami2000.htm | ||
| 早速のご回答ありがとうございます。早速実行してみます。 しかし TEditor も、もう Ver1.52 ですか。どんどん進化していきますねえ。 私は今のままであんまり不満はないですけど(^^;)。 バージョンアップといえば私もついにDelphi5を手に入れました。しかし、私 のマシンでは重いので Delphi2.0 もまだまだ現役です。 |
||
| 383 | Re^2: Atokでの単語登録 | コメント数: 1件 |
| 本田勝彦 | | 2000/03/27 (月) 01:56 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > だいぶ前にご指摘を頂いたような気がします(^^; K2さんからでしたね。 > 何かのメッセージがやって来るので、というお話でした。 > いまだに実装はされていません。調べてみますね。 わっかりました。WM_COPY メッセージハンドラを実装すると機能するようです。 procedure WMCopy(var Message: TMessage); message WM_COPY; というのを private 部の適当なところに追加して、実現部では、 procedure TEditor.WMCopy(var Message: TMessage); begin if Selected then CopyToClipBoard else Clipboard.AsText := ''; end; としてやれば行けます。ATOKはクリップボードにあるデータを取ってくるだけ のようですので、非選択状態の場合はクリップボードをクリアする意味で '' を渡してやるとベターかなと思います。 |
||
| 382 | Re^5: TEditor ver 1.52 | コメント数: 0件 |
| kmth | | 2000/03/27 (月) 01:14 | |
| http://www3.cds.ne.jp/~kmth/software/ | ||
| > いつからそうなってました? うちではアプリケーションの方で、 > ...中略 > 気になるようなら、古いバージョンのソースと見比べてみましょうね。 誠に申し訳ありません。m(_ _)m 思いっきり勘違いしてました。 自分のDblClickのイベントに書き加えたコードを見落として、思い込みで書き込みしたことを恥ずかしく思います。 本当に失礼しました。 本田さん、K2さん他皆様、混乱させて申し訳ありませんでした。 m(_ _)m |
||
| 381 | Re: Atokでの単語登録 | コメント数: 2件 |
| 本田勝彦 | | 2000/03/27 (月) 00:44 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > 大変ご無沙汰しております。 ども〜、お久ですね。お元気でしたか(^^) > RichEditを使ったアプリや秀丸、EmEditorなどではAtokで単語登録をする際文字 > 列を反転してやると、反転した文字列が自動的にクリップボードにコピーされその > 文字列を単語登録の対象とすることができますがTEditorではできないようです。 > 何か対策があるでしょうか? だいぶ前にご指摘を頂いたような気がします(^^; 何かのメッセージがやって来るので、というお話でした。 いまだに実装はされていません。調べてみますね。 |
||
| 380 | Re^4: TEditor ver 1.52 | コメント数: 0件 |
| 本田勝彦 | | 2000/03/27 (月) 00:39 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| >実際に組み込んで試用してみます。気付いた点がありましたらまた、 >書き込みにきますね。 お待ちしてま〜す(^^) |
||
| 379 | Re^4: TRegManagerについて | コメント数: 0件 |
| 兎犬 | | 2000/03/27 (月) 00:29 | |
| > 追加情報です。 > > 生まれつきキャプションの無いパネルをこしらえるという手もあります。 Delphiは本当に柔軟ですね。 私は初心者でしかもアホですが、さわっててとても楽しいです。 プログラミングはコンポーネント頼りなのでこれからもがんばってください。 |
||
| 378 | Atokでの単語登録 | コメント数: 3件 |
| ゆうきひろ | | 2000/03/26 (日) 17:00 | |
| http://www.remus.dti.ne.jp/~kinpotwn/mozart/Nami2000.htm | ||
| 大変ご無沙汰しております。 RichEditを使ったアプリや秀丸、EmEditorなどではAtokで単語登録をする際文字 列を反転してやると、反転した文字列が自動的にクリップボードにコピーされその 文字列を単語登録の対象とすることができますがTEditorではできないようです。 何か対策があるでしょうか? TEditorのバージョンはまだ 1.34 です(^^;)。 |
||
| 377 | Re^4: TEditor ver 1.52 | コメント数: 1件 |
| K2 | | 2000/03/26 (日) 10:30 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| K2です。 > > > なぜダブルクリックでのワード選択を標準から外されたのでしょう? > > あれぇ?デフォでそうなっていましたっけ? > はい。少なくとも、v1.51では。 いつからそうなってました? うちではアプリケーションの方で、 ダブルクリック時にワード選択するようにコーディングしています。 HEditor.pasをみても、DblClick時の動作は特に規定されていないと 思います。(うちのHEditorは、オリジナルからはかけ離れているけど) 気になるようなら、古いバージョンのソースと見比べてみましょうね。 |
||
| 376 | Re^3: TEditor ver 1.52 | コメント数: 3件 |
| kmth | | 2000/03/26 (日) 00:54 | |
| http://www3.cds.ne.jp/~kmth/software/ | ||
| > > なぜダブルクリックでのワード選択を標準から外されたのでしょう? > あれぇ?デフォでそうなっていましたっけ? はい。少なくとも、v1.51では。 でも、ユーザがダブルクリック時の挙動を決められるので、このままの方が良いと思います。 時間なくまだメインの開発環境の方に組み込めていないので、実際に組み込んで試用してみます。気付いた点がありましたらまた、書き込みにきますね。 ではまた。 |
||
| 375 | Re^3: TRegManagerについて | コメント数: 1件 |
| 本田勝彦 | | 2000/03/26 (日) 00:36 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > > なので、復帰させた後で、キャプションを消すという作業をやっていただくより > > 今のところ方法は無いように思います。 追加情報です。 生まれつきキャプションの無いパネルをこしらえるという手もあります。 unit ToolPanel; interface uses Classes, ExtCtrls; type TToolPanel = class(TPanel) public constructor Create(AOwner: TComponent); override; end; procedure Register; implementation procedure Register; begin RegisterComponents('Samples', [TToolPanel]); end; constructor TToolPanel.Create(AOwner: TComponent); begin inherited Create(AOwner); ControlStyle := ControlStyle - [csSetCaption]; end; end. というのをコンポーネントインストールして使うという手もあります。 |
||
| 374 | Re: TEditor ver.1.52 | コメント数: 0件 |
| 本田勝彦 | | 2000/03/26 (日) 00:29 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > ドラッグ中にESCキーを押したとき、ドラッグ操作を解除する > ことはできないでしょうか。 > Win95インターフェイスでは、ESCキーを押せば解除できること > になっているようですので。 あ、やっぱり(^^;) TDragObject のD&Dでは、かなり面倒な処理が必要になります。たぶん^^; TEditor がドラッグ中は、override した WndProc がキーメッセージを殺して いますので、そこで・・・あ゛キャンセルするメソッドは現在用意されていませんね。 フラグも private だし・・・やっぱ何かちょっとしっくり行ってない部分が 今回のバージョンにはあります。VCLらしさに欠けるという感じですね。 考えて見ます。ご意見ありがとうございます。 |
||
| 373 | TEditor ver.1.52 | コメント数: 1件 |
| K2 | | 2000/03/25 (土) 19:26 | |
| http://web.kyoto-inet.or.jp/people/koyabu/ | ||
| こんにちは。K2です。 マウスドラッグによる選択範囲移動、今日、やっと試すことが できました。(なかなか暇ができなかったので) Tab内にもキャレットが入らなくなりました。どうもありがとう ございます。 ところで、マウスドラッグですが、おおむねうまく動作してい るようです。もうちょっと様子を見て一般公開に持ち込みたい と思います。 ドラッグ中にESCキーを押したとき、ドラッグ操作を解除する ことはできないでしょうか。 Win95インターフェイスでは、ESCキーを押せば解除できること になっているようですので。 |
||
| 372 | Re^2: TEditor ver 1.52 | コメント数: 4件 |
| 本田勝彦 | | 2000/03/24 (金) 23:46 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| どうも、お久です。 > なぜダブルクリックでのワード選択を標準から外されたのでしょう? あれぇ?デフォでそうなっていましたっけ? |
||
| 371 | Re^2: TEditor ver 1.52 | コメント数: 0件 |
| 本田勝彦 | | 2000/03/24 (金) 23:45 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > やっと出てきまして、皆様始めまして > さっそくですが V1.52 頂いてまいりますm(__)m > 何が変わったのかな〜、楽しみ、楽しみ ようこそいらっしゃいませ。(^^) 使い勝手など教えて下さいね。 |
||
| 370 | Re: TEditor ver 1.52 | コメント数: 5件 |
| kmth | | 2000/03/24 (金) 14:37 | |
| http://www3.cds.ne.jp/~kmth/software/ | ||
| v1.52早速頂きました。ドラッグ&ドロップサポートありがとうございます。 で、ちょっと気になった点: なぜダブルクリックでのワード選択を標準から外されたのでしょう? ヘルプにあった以下で実現は可能ですが... 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; |
||
| 369 | Re: TEditor ver 1.52 | コメント数: 1件 |
| sakaiy | | 2000/03/24 (金) 08:31 | |
| やっと出てきまして、皆様始めまして さっそくですが V1.52 頂いてまいりますm(__)m 何が変わったのかな〜、楽しみ、楽しみ |
||
| 368 | TEditor ver 1.52 | コメント数: 8件 |
| 本田勝彦 | | 2000/03/23 (木) 23:43 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| お待たせしました。公開致しましたので、お試し下さい。 ご意見などお待ちしております。 |
||
| 367 | Re^2: TRegManagerについて | コメント数: 2件 |
| 兎犬 | | 2000/03/23 (木) 23:09 | |
| > Delphi の仕様だと思います。 知りませんでした。 > なので、復帰させた後で、キャプションを消すという作業をやっていただくより > 今のところ方法は無いように思います。 わかりました。 ありがとうございました。 |
||
| 366 | Re: TRegManagerについて | コメント数: 3件 |
| 本田勝彦 | | 2000/03/23 (木) 05:30 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > はじめまして。 > TRegManagerを利用させていただいてます。 ども、ようこそいらっしゃいまし。(^^) > ツールバーとして使用しているパネルを復帰させたときにパネルのNAME > プロパティが表示されてしまいます。 > どこか設定がまずいのでしょうか。 > パネルのキャプションにはなにも入れていません。 これは、Delphi の仕様だと思います。例えば、設計時にキャプションのない パネルをコピーして、他のフォームに貼り付けるとキャプションが出て来るでしょ。 なので、復帰させた後で、キャプションを消すという作業をやっていただくより 今のところ方法は無いように思います。 |
||
| 365 | Re^5: 間もなく | コメント数: 0件 |
| 本田勝彦 | | 2000/03/23 (木) 05:24 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > 選択範囲、ドラッグ時等のマウスカーソル変更と、 > レフトマージンをクリックで行選択です〜 あら〜(^^; でもね、ドラッグ中に右クリックされると悲惨しません? 新バージョンでは、WndProc を override して、この辺も改善されてます。 > 自分なりに苦労したので、ついつい書き込んでしまいました。f(^^;) えぇ、行選択は特に苦労しましたね。苦労の割には見返りが(^^; と今作成中のヘルプにも書きました(^^;;;;;;; > ところで、1.00 から HEditor.pas をちまちまと改造してますが、 > 本田さん書いたソース見ているだけでほんとーーに勉強になります。 > #最高の参考書です♪ どもども(^^) |
||
| 364 | TRegManagerについて | コメント数: 4件 |
| 兎犬 | | 2000/03/22 (水) 23:58 | |
| はじめまして。 TRegManagerを利用させていただいてます。 TRegManagerでComponent復帰時について質問させてください。 ツールバーとして使用しているパネルを復帰させたときにパネルのNAMEプロパティが表示されてしまいます。 どこか設定がまずいのでしょうか。 パネルのキャプションにはなにも入れていません。 |
||
| 363 | Re^4: 間もなく | コメント数: 1件 |
| てらお | | 2000/03/22 (水) 00:38 | |
| http://www2s.biglobe.ne.jp/~t-susumu/toclip/ | ||
| > あら、どのあたりでしょう? 選択範囲、ドラッグ時等のマウスカーソル変更と、 レフトマージンをクリックで行選択です〜 #仕様は違うかも 自分なりに苦労したので、ついつい書き込んでしまいました。f(^^;) すみません。m(__)m ところで、1.00 から HEditor.pas をちまちまと改造してますが、 本田さん書いたソース見ているだけでほんとーーに勉強になります。 #最高の参考書です♪ いまさらですが、ソースを公開して頂いて感謝感謝です〜 (^-^) |
||
| 362 | Re^3: 間もなく | コメント数: 2件 |
| 本田勝彦 | | 2000/03/21 (火) 23:59 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > 早まった〜 > 自力で実装しまったですぅ〜 (T.T) あら、どのあたりでしょう? プロパティ設定で黙りおろさせることも出来ますので、そう泣かんでも(^^;;; |
||
| 361 | Re^2: 間もなく | コメント数: 3件 |
| てらお | | 2000/03/21 (火) 15:54 | |
| http://www2s.biglobe.ne.jp/~t-susumu/toclip/ | ||
| 早まった〜 自力で実装しまったですぅ〜 (T.T) |
||
| 360 | Re: 間もなく | コメント数: 4件 |
| 本田勝彦 | | 2000/03/21 (火) 00:36 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| 補足(^^; > また、今まで private だったメソッド群を public にしますので、 全部ではありません。ドラッグ&ドロップに必要なメソッドを public に致します。 |
||
| 359 | 間もなく | コメント数: 5件 |
| 本田勝彦 | | 2000/03/21 (火) 00:34 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| TEditor ver 1.52 がリリースされる予定です。 選択文字列のマウスでの移動・コピー処理で、マウスカーソルを指定出来る ようになります。 また、今まで private だったメソッド群を public にしますので、 MouseDown イベントハンドラ内で Editor1.BeginDrag(False); が可能に なります。 おまけとして、右向きカーソルリソースを同梱し、TEditor が LoadCursor しますので、レフトマージン内で使えるようになります。で、レフトマージン内で WM_LBUTTONDOWN すると行選択が出来るようになります。今ここを実装中です。 お楽しみに(^^) |
||
| 358 | Re^3: キャレットのゴミが・・・ | コメント数: 0件 |
| てらお | | 2000/03/18 (土) 01:29 | |
| http://www2s.biglobe.ne.jp/~t-susumu/toclip/ | ||
| 早速ありがとうございます〜 バッチリOKです。(^-^) |
||
| 357 | Re^2: キャレットのゴミが・・・ | コメント数: 1件 |
| 本田勝彦 | | 2000/03/18 (土) 00:27 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| procedure TEditor.WMLButtonDown(var Message: TWMLButtonDown); var Shift: TShiftState; begin Shift := KeyDataToShiftState(Message.Keys); if ssShift in Shift then begin if not Selected then InitSelection; // キャレット移動 SetRowColByPos(Message.XPos, Message.YPos); // 選択状態へ移行・再入 SetSelection; end else begin // 選択領域の開始位置になるかもしれないポイントを取得 FMouseSelStartPos.X := Message.XPos; FMouseSelStartPos.Y := Message.YPos; // キャレット移動 CaretBeginUpdate; // ※ try SetRowColByPos(Message.XPos, Message.YPos); if FCaret.FSelMove and Selected and (FSelectionMode = smLine) and IsSelectedArea then // フラグ設定 FSelMoving := True else // 選択領域を初期化 InitSelection; finally CaretEndUpdate; // ※ end; end; inherited; // Windows.SetFocus cf DefaultHandler Message.Result := 0; end; |
||
| 356 | Re: キャレットのゴミが・・・ | コメント数: 2件 |
| 本田勝彦 | | 2000/03/18 (土) 00:27 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > 選択状態にした後、選択範囲以外の場所をクリックすると、 > その位置にキャレットのゴミが残ることがあります。 サンプル画像までありがとうございました。サンプルプロジェクトでも 確認できました。 > もし、HEditor.pasを少し改造するだけで修正可能であれば、 > その方法を教えて頂けないでしょうか? WMLButtonDown メッセージハンドラを次発言のように変更してみて下さい。 キャレット移動部分を CaretBeginUpdate; CaretEndUpdate でサンドイッチ しています。 |
||
| 355 | キャレットのゴミが・・・ | コメント数: 3件 |
| てらお | | 2000/03/17 (金) 14:01 | |
| http://www2s.biglobe.ne.jp/~t-susumu/toclip/ | ||
| こんにちは、てらおです。 TEditorでちょっと気になるところがありました。 選択状態にした後、選択範囲以外の場所をクリックすると、 その位置にキャレットのゴミが残ることがあります。 サンプル画像: http://www2s.biglobe.ne.jp/~t-susumu/toclip/tmp/hedit.gif 確認した環境は、 - Win95 - Delphi4 - TEditor1.51 (ノーマルソース) - サンプルプロジェクト です。 この現象が起きると、アプリ終了時にランタイムエラーが発生します。 ディスプレイドライバが原因かと思い、他のPCでも確認してみましたが 同様でした。 もし、HEditor.pasを少し改造するだけで修正可能であれば、 その方法を教えて頂けないでしょうか? よろしくお願いします。 |
||
| 354 | Re^4: 選択文字列移動関連カーソル | コメント数: 0件 |
| 本田勝彦 | | 2000/03/17 (金) 03:42 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > OnSelMoving( TObject * Sender, AnsiString SelText, int X, int Y ); > OnSelMoveEnd( TObject * Sender, AnsiString SelText, int X, int Y ); なるほど\(^o^)/ が、現在、秀丸ライクなD&Dをマウスカーソルも含めて実装したところなんですよね。 でも、WM_LBUTTONDOWN から少しカーソルが動いたら始まるDelphi 標準D&Dや 中野さんのようなOLED&Dにも対応出来るような仕様にしたいと思っています。 プロパティ設定によって 「お任せおっけ〜」と「どうにも出来るぞ」な仕様に出来れば良いなぁと・・・ もう少し考えてみます。 |
||
| 353 | Re^3: 選択文字列移動関連カーソル | コメント数: 1件 |
| 中野克平 | | 2000/03/15 (水) 01:59 | |
| > OLE はいまだ全く不案内なのですが、そういうイベントがありさえすれば > OLEドラッグ&ドロップが実装できるんですね。やってみます。 私はBCB派なので、BCB風に補足すると、 OnSelMoving( TObject * Sender, AnsiString SelText, int X, int Y ); OnSelMoveEnd( TObject * Sender, AnsiString SelText, int X, int Y ); という感じでしょうか? X,Y が親フォームの範囲外であれば、OLEドロップ発動、 範囲内であれば、同一フォーム内でのドロップ処理。 OnSelMovingでOnDragOverを処理、OnSelMoveEndでOnDragDropを処理。 よろしくお願いします。 私の作っているアプリはますますTEditorへの依存度を高めていきます。:-) |
||
| 352 | Re^2: 選択文字列移動関連カーソル | コメント数: 2件 |
| 本田勝彦 | | 2000/03/15 (水) 00:05 | |
| http://homepage3.nifty.com/~katsuhiko/ | ||
| > OLEドラッグ&ドロップで、他のアプリに選択テキストをドロップする >(この機能はユーザーが実装、あるいは専用コンポを利用)ために、 >OnSelMoveStart/OnSelMoveEndなんていうイベントがあったらいいのでは? ご意見どうもです。(^^) OLE はいまだ全く不案内なのですが、そういうイベントがありさえすれば OLEドラッグ&ドロップが実装できるんですね。やってみます。 |
||
| 351 | Re: 選択文字列移動関連カーソル | コメント数: 3件 |
| 中野克平 | | 2000/03/14 (火) 19:47 | |
| > 他にご意見などありましたら宜しくお願い致します。 OLEドラッグ&ドロップで、他のアプリに選択テキストをドロップする(この機能はユーザーが実装、あるいは専用コンポを利用)ために、OnSelMoveStart/OnSelMoveEndなんていうイベントがあったらいいのでは? |
||