| back | 2251-2300 | 2301-2350 |
2351-2400 |
| 2350 | 折り返しのインデント | コメント数: 1件 |
| TEditorFan | 2002/10/09 (水) 19:07 | |
| いつもお世話になります。 WrapByteで折り返されたものを元のインデントにあわせて整形することはできますか? |
||
| 2349 | Re^2: CreateProcessについて | コメント数: 0件 |
| 喜太郎 | 2002/10/09 (水) 15:31 | |
| > ここで聞くような内容の質問ではないと思いますが。 > Delphi-MLあたりで聞いたらどうでしょ? 失礼しました。 他をあたります。。 |
||
| 2348 | Re: CreateProcessについて | コメント数: 1件 |
| VXO | 2002/10/09 (水) 01:55 | |
| > CreateProcessについて勉強中なのですが、第二引数のコマンドラインで ここで聞くような内容の質問ではないと思いますが。 Delphi-MLあたりで聞いたらどうでしょ? |
||
| 2347 | CreateProcessについて | コメント数: 2件 |
| 喜太郎 | 2002/10/08 (火) 18:29 | |
| 初めて投稿させて頂きます。 CreateProcessについて勉強中なのですが、第二引数のコマンドラインで 悩んでおります。 やりたい事 単純にCドライブのdirを実行させたい コード *第二引数→Commandには'dir c:'コマンドライン Destには'c:test.dat'結果の保存先 CreateProcess(nil, PChar(Format('%s > %s',[Command,Dest])), nil, nil, False, 0, nil, nil, SI, PI) 実行すると、CPU負荷が100%になって何時までも終了しません。 そのため、結果も得られません。 コマンドラインが悪いのではないかと思っているのですが、 どのような対処方法で解決できるのでしょうか? バッチファイルをdir c: > c:test.datで作ってうまくいくので、 同じようにしたんだが。。。 宜しくお願いします。 |
||
| 2346 | Re: 複数行のインデント | コメント数: 0件 |
| Km | | 2002/10/08 (火) 11:57 | |
| > 複数行のインデントはどういうふうにすればいいのでしょうか。 > 複数選んで、[SHIFT]+TABとかスペースでできるといいのですが.. SelTabIndentメソッドを使えばよいです。 行選択時にタブキーが押されたらOnKeyPressイベントでタブキーをはじき、 OnKeyDownイベントでインデント/アンインデント処理すればよいです。 ただし、矩形選択時は行選択の条件を外したほうが良いでしょう。 |
||
| 2345 | 複数行のインデント | コメント数: 1件 |
| TEditorFan | 2002/10/08 (火) 11:11 | |
| 複数行のインデントはどういうふうにすればいいのでしょうか。 複数選んで、[SHIFT]+TABとかスペースでできるといいのですが.. |
||
| 2344 | コピー操作のキー | コメント数: 0件 |
| TEditorFan | 2002/10/08 (火) 10:53 | |
| 他のエディタやメモ帳のようにShift+Delキーによるコピーはできないのでしょうか? |
||
| 2343 | Re^3: リンク、張らせていただきました。 | コメント数: 0件 |
| 本田勝彦 | 2002/10/04 (金) 20:49 | |
| > 囲碁にはまってたんですか。私はもっぱらigowinだけです。 > しかも15級(弱い(^^;) 私もそんなモンです。よわよわ^^ |
||
| 2342 | Re^2: リンク、張らせていただきました。 | コメント数: 1件 |
| Km | | 2002/10/04 (金) 01:17 | |
| > ウチにも、囲碁のリンク作りますね。 > > 最近 TEditor の更新が放置されているワケがばれてしまいました^^; 囲碁にはまってたんですか。私はもっぱらigowinだけです。 しかも15級(弱い(^^;) |
||
| 2341 | Re: リンク、張らせていただきました。 | コメント数: 2件 |
| 本田勝彦 | 2002/10/03 (木) 22:45 | |
| > リンク、今日中に追加しますよ〜。 > で私のHPはhttp://hokkaidouzinn.hp.infoseek.co.jp/ > 七夜くんのHPはhttp://members.tripod.co.jp/nanaya78/ > 七夜くんのHPでは独自に囲碁サーバーあるので緊急避難用に使えます。 > 情報は掲示板でみっけるといいと思います。 > つながらないときはとりあえず掲示板見るといいかもしれ どうもです。 ウチにも、囲碁のリンク作りますね。 最近 TEditor の更新が放置されているワケがばれてしまいました^^; |
||
| 2340 | リンク、張らせていただきました。 | コメント数: 3件 |
| 北海道人 | 2002/10/03 (木) 22:43 | |
| http://hokkaidouzinn.hp.infoseek.co.jp/ | ||
| リンク、今日中に追加しますよ〜。 で私のHPはhttp://hokkaidouzinn.hp.infoseek.co.jp/ 七夜くんのHPはhttp://members.tripod.co.jp/nanaya78/ 七夜くんのHPでは独自に囲碁サーバーあるので緊急避難用に使えます。 情報は掲示板でみっけるといいと思います。 つながらないときはとりあえず掲示板見るといいかもしれません。 |
||
| 2339 | Re: Delphi7インストール | コメント数: 0件 |
| ダークネス | 2002/10/01 (火) 17:25 | |
| > イベント取ってないけど、ホイールは効きますが。 > イベントだけ来ないのかな? いえ、D7で使おうとするとホイールのイベント自体が オブジェクトインスペクタから消えて無くなっちゃいました で、私が要らぬ部分まで消してしまったのかな?と思いまして。 > 警告:安全でないコードString index to var param > > pointerもだめなようですね 確かにPCharとかもザクザク警告されちゃいますね。 |
||
| 2338 | Re^2: Delphi7インストール | コメント数: 1件 |
| きよあき | 2002/09/30 (月) 22:00 | |
| > D7だとホイール関係のイベント等が使えなくなってるような気が > したのですが、使えてますか? イベント取ってないけど、ホイールは効きますが。 イベントだけ来ないのかな? あと、TEditorとは直接関係ありませんが、結構ワーニング出ますね。 たとえば F.ReadBuffer(S[1],2); SはString で 警告:安全でないコードString index to var param pointerもだめなようですね |
||
| 2337 | Re: Delphi7インストール | コメント数: 2件 |
| ダークネス | 2002/09/30 (月) 19:20 | |
| > 一応、こちらのHPで落としてきたものを入れてみましたが、 > デファイン文でエラーになったので、その辺をコメントアウトで D7だとホイール関係のイベント等が使えなくなってるような気が したのですが、使えてますか? |
||
| 2336 | Delphi7インストール | コメント数: 4件 |
| きよあき | 2002/09/28 (土) 17:25 | |
| Delphi7が来たのでインストールしてみました、 付属のおまけ?CDに、TEditor入ってましたね。 一応、こちらのHPで落としてきたものを入れてみましたが、 デファイン文でエラーになったので、その辺をコメントアウトで 無事コンポーネントを登録出来ました。 Delphi Studio 7 ENTERPRISE |
||
| 2335 | TEditorの予約語 | コメント数: 4件 |
| 笹川賢一 | 2002/09/19 (木) 22:54 | |
| 本田さん こんばんは。お久しぶりです。 予約語のカラー表示のことで教えてください。 Lisp系言語のためのエディタを考えています。2つのことで悩んでいます。 (1) integer->char のようなキーワードを1つの予約語したいのですがどうしたらいいでしょうか? (2) 2種類以上の色分けをするにはどうしたらいいでしょうか? 例えば、define は茶色、sub1 は青 のようにです。 よろしくお願いします。 |
||
| 2334 | Re^3: 表示行末のWrapping処理について | コメント数: 0件 |
| Km | | 2002/09/07 (土) 18:03 | |
| 江頭 慎一郎さん、こんにちは。 > の "enum" を適当な変数名に書き換える。 enumはCのkeywordで変数名と > して使えないため compilerに誤認されてしまいます(多分)。 > 可能でしたら original source の変数名を変更していただけると書換え > なしにinstallできるようになると思います。 hOledd.pasのfunction Clone(out enum: IEnumFormatEtc): HResult; stdcall; (とその実装部)のenumをenumetcとして実行したところうまくいきました。 確かにCではenumは予約語ですね。 #だからCloneをimplementationに移してBCBから見えなくしたら動いたんだ。 #言われるまで全然、気が付かなかった(^^;;; |
||
| 2333 | RubyFountain | コメント数: 1件 |
| sakazuki | 2002/09/07 (土) 17:58 | |
| http://homepage2.nifty.com/sakazuki/ | ||
| sakazukiです。 みずほさんの開発された、RubyFountainの公開を引き継ぎました。 http://homepage2.nifty.com/sakazuki/delphicompo.html 今後は、こちらで公開します。 |
||
| 2332 | Re^2: 表示行末のWrapping処理について | コメント数: 1件 |
| 江頭 慎一郎 | | 2002/09/07 (土) 14:35 | |
| こんにちは、以前質問させていただいた江頭です。 勝彦さんの提案を参考に 問題解決することができました。 TResEditorも大変参考になりました。 ありがとうございます。 BCB5でTOleddEditorを使う方法はKmさんにより報告されてますが、hOledd.pas の書換えなしで使う方法を報告させていただきます。 再現性のcheckをお願い します。 1.(BCBが作成する)hOledd.hpp中 HRESULT __stdcall Clone(/* out */ _di_IEnumFORMATETC &enum ); の "enum" を適当な変数名に書き換える。 enumはCのkeywordで変数名と して使えないため compilerに誤認されてしまいます(多分)。 可能でしたら original source の変数名を変更していただけると書換え なしにinstallできるようになると思います。 2.Unit1.h 等のheader fileに次の一行を追加 #include <axctrls.hpp> Delphi componentをBCBで使うと「演算子のoverloadに関するerror」が でがちですが、この方法で解消されることが多いです。 但し、error解消後はcomment outしても正常にcompileされたりするので なんだかわけがわかりません。 とりあえずご連絡させて頂きました。 また寄せていただきます。 江頭 慎一郎 |
||
| 2331 | Re^2: TEditorで作りました。ソースコードエディタCeta(ツェータ) | コメント数: 0件 |
| 風晶 | | 2002/08/26 (月) 04:17 | |
| http://homepage2.nifty.com/ssfu/ | ||
| こんにちは、風晶です。 > これからも TEditor をよろしくお願いいたします。 有り難うございます。現在ヘルプドキュメントの整理が終了したβ版の公開を開始しております。Windows2000/XPへの対応が出来次第、本バージョンにあげる予定です。 > リンクの件修正いたしました。 ありがとうございました。 |
||
| 2330 | Re: TEditorで作りました。ソースコードエディタCeta(ツェータ) | コメント数: 1件 |
| 本田勝彦 | 2002/08/26 (月) 01:27 | |
| こんにちは。頑張ってますね〜。 これからも TEditor をよろしくお願いいたします。 リンクの件修正いたしました。 |
||
| 2329 | TEditorで作りました。ソースコードエディタCeta(ツェータ) | コメント数: 2件 |
| 風晶 | | 2002/08/23 (金) 22:15 | |
| http://homepage2.nifty.com/ssfu/ | ||
| 風晶と言います。 ホントはKmさまのTEditorExを使っているのですが、本田勝彦さまのTStringPrinter やTKeyMacroなどを利用しています。 1年ほど前からずうっと作っていたんですけど、ようやく普通に使えるモノ(Ver2.50)に仕上がりました。現在バグ取りとヘルプの整理が終わっていない、α版を公開しています。 宜しければ覗いてみて下さい。 TEditorを使ったソフトが又一つできました、と言うことで、本田勝彦さま、Kmさま、どうもありがとうございました。 http://homepage2.nifty.com/ssfu/ fenjin@nifty.com |
||
| 2328 | Re^2: 表示行末のWrapping処理について | コメント数: 0件 |
| 江頭慎一郎 | | 2002/08/22 (木) 20:45 | |
| > TEditorScreenStrings の StrToWrapList, WrapCount メソッドを > override して、特定パターンの文字列が折り返されないようにするか、 > > $xx を一つのトークンとして認識する Fountain をこしらえてあてがい、 > WrapOption.WordBreak プロパティを True に設定する > > という方法が考えられますね。挑戦してみて下さい。 > > 1番目のサンプルが開発日誌のページに TResEditor として上がっています。 早速お返事頂きありがとうございます。Just Sunday Programmerなので週末 にでもやってみます。 挫折しましたらまた参りますので、よろしくお願い いたします。 どうもありがとうございました。 江頭 |
||
| 2327 | Re: 表示行末のWrapping処理について | コメント数: 3件 |
| 本田勝彦 | 2002/08/21 (水) 21:55 | |
| > しかし、表示行末折り返しで '$xx'が分断され、行末にアイコン、次行頭に'xx' > や'x'等の分断された文字が表示されてしまう状態です。それを「隠す」のは可能 > なのですがいかがなものかと思われ、行末のWrapping処理でなんとかできないか > 考えていますが、技術的に未熟なもので改善の糸口がつかめません。なにかヒント TEditorScreenStrings の StrToWrapList, WrapCount メソッドを override して、特定パターンの文字列が折り返されないようにするか、 $xx を一つのトークンとして認識する Fountain をこしらえてあてがい、 WrapOption.WordBreak プロパティを True に設定する という方法が考えられますね。挑戦してみて下さい。 1番目のサンプルが開発日誌のページに TResEditor として上がっています。 |
||
| 2326 | Re^3: 最初の行への文字列追加について | コメント数: 0件 |
| 本田勝彦 | 2002/08/21 (水) 21:49 | |
| > # これも、バージョンアップ間隔が伸びたおかげ? > # よいような、わるいような・・・ 最近、気力体力の限界を感じる鉄腕アトム世代でし^^; |
||
| 2325 | 表示行末のWrapping処理について | コメント数: 4件 |
| 江頭慎一郎 | | 2002/08/21 (水) 12:59 | |
| こんにちわ。初めて質問させていただきます。江頭といいます。 現在テキスト中にアイコンを表示させることを考えており、OnDrawLineで文中の 文字列 '$xx'(xxは数値)をbitmapで上描きする仕様を考えています。 しかし、表示行末折り返しで '$xx'が分断され、行末にアイコン、次行頭に'xx' や'x'等の分断された文字が表示されてしまう状態です。それを「隠す」のは可能 なのですがいかがなものかと思われ、行末のWrapping処理でなんとかできないか 考えていますが、技術的に未熟なもので改善の糸口がつかめません。なにかヒント のようなものが頂けたらと思い投稿してみました。是非ご教授お願いいたします。 当方BCB5 Proを使用しております。 江頭 |
||
| 2324 | Re^2: 最初の行への文字列追加について | コメント数: 1件 |
| sakazuki | 2002/08/21 (水) 06:31 | |
| http://homepage2.nifty.com/sakazuki/rde.html | ||
| > 単純に、TStringsのデフォルトにあわせたのだと思います。 > デフォルトとは違う動作を、同じ関数に定義されると困ることが多いです。 > 必要ならば、AddNoBreakLineなど、別の関数名で追加したほうがいいと思います。 なるほど。そうかもしれませんね。 とりあえずは、該当個所の修正で個人的に希望の動作は実現できたので、これを使おうと思います。 # 最近TEditor.pas本体を修正することへの抵抗がなくなってきました。 # これも、バージョンアップ間隔が伸びたおかげ? # よいような、わるいような・・・ |
||
| 2323 | Re: 最初の行への文字列追加について | コメント数: 2件 |
| にしの | 2002/08/19 (月) 17:43 | |
| > こんにちは。sakazukiです。 > 最初の行への文字列追加(Lines.Add(S))の結果は、無条件に改行が付与されて > --------- > abc > [EOF] > --------- > になります。 > function TEditorStrings.Add(const S: String): Integer; > 3314行目で > Buf := S + #13#10; > としているためだと思うのですが、 > 上記のような処理にしているのには何か理由がありますか? 単純に、TStringsのデフォルトにあわせたのだと思います。 デフォルトとは違う動作を、同じ関数に定義されると困ることが多いです。 必要ならば、AddNoBreakLineなど、別の関数名で追加したほうがいいと思います。 |
||
| 2322 | 最初の行への文字列追加について | コメント数: 3件 |
| sakazuki | | 2002/08/19 (月) 13:54 | |
| こんにちは。sakazukiです。 最初の行への文字列追加(Lines.Add(S))の結果は、無条件に改行が付与されて --------- abc [EOF] --------- になります。 function TEditorStrings.Add(const S: String): Integer; 3314行目で Buf := S + #13#10; としているためだと思うのですが、 上記のような処理にしているのには何か理由がありますか? 個人的には先頭への追加は、下記のようになって欲しいのです。 --------- abc[EOF] --------- |
||
| 2321 | Re^2: メッセージハンドラ | コメント数: 0件 |
| shobohn | 2002/08/05 (月) 23:51 | |
| ご返答ありがとうございます。 > 今まで誰も使ったことのない機能だったりして(^^;;; 普通にコンポーネントとして使用する分には 気がつかないかもしれませんね。 メッセージハンドラなんて使わないでしょうし。 でも、このようなメッセージに応答してくれるのは 外部アプリが作りやすいので、非常にありがたいです。 EMGetLineについてですが、 L := Min(Message.LParamLo, Length(S)); のMessage.LParamLoが意味するのは、 「バッファの最初のワード」ではなく、 バッファを指す「ポインタの下位ワード」ではないか? という指摘だったんですが。 System.Move(S[1], Pointer(Message.LParam)^, L); は今のままでいいと思いますよ。 |
||
| 2320 | Re^2: WrapByteの変更でUndo/Redoができなくなる | コメント数: 0件 |
| 本田勝彦 | 2002/08/05 (月) 22:35 | |
| > > これは仕様なのでしょうか? > > それとも回避する方法があるのでしょうか? > ヘルプのUndoのところに > > WordWrap, WrapOption プロパティ値を更新したり、Clear, Lines.Clear メソッドを実行すると、Undo, Redo バッファが初期化されますので、Undo, Redo は出来なくなります。 > > という説明があります。 Undo データの保持方式がそういう仕組みになっているので、 仕様なのです。 |
||
| 2319 | Re: メッセージハンドラ | コメント数: 0件 |
| 本田勝彦 | 2002/08/05 (月) 22:33 | |
| > 同じく6871〜6884行目 > ここでRとCを求めてるわけですが、Resultにこの値は使われてません。 > どうしてなんでしょうか? EMPosFromChar が実装された ver 1.60 からこのスタイルになってますね。 バグかも^^; 今まで誰も使ったことのない機能だったりして(^^;;; Y := TopMargin + (FRow - FTopRow) * GetRowHeight; X := LeftMargin + (FCol - FTopCol) * FFontWidth; は Y := TopMargin + (R - FTopRow) * GetRowHeight; X := LeftMargin + (C - FTopCol) * FFontWidth; が正解なのかもしれません。 少し調べて見ます。ご指摘感謝です。 |
||
| 2318 | Re: メッセージハンドラ | コメント数: 1件 |
| 本田勝彦 | 2002/08/05 (月) 22:26 | |
| > 2.38のHEditor.pasの6739行目 > L := Min(Message.LParamLo, Length(S)); > となっていますが、LParamはポインタであってサイズではないのでは > ないでしょうか? ヘルプからの引用ですが、 >lpch lParamの値です。行内容のコピーを受け取るバッファを指すポインタ >です。バッファの最初のワードは、 バッファにコピーできる最大文字数を示します。 とありますので、LParam の最初に取得すべきというか、用意されたバッファの長さ が格納されているハズだという実装なのです。ということは、その下の System.Move(S[1], Pointer(Message.LParam)^, L); は System.Move(S[1], Pointer(Message.LParamHi)^, L); としなければならないのかな? Fox さんの問題点もここにあったのかしらん? |
||
| 2317 | Re: WrapByteの変更でUndo/Redoができなくなる | コメント数: 1件 |
| ゆうきひろ | 2002/08/04 (日) 21:07 | |
| http://homepage2.nifty.com/ultla7/mozart/_start.htm | ||
| > これは仕様なのでしょうか? > それとも回避する方法があるのでしょうか? ヘルプのUndoのところに WordWrap, WrapOption プロパティ値を更新したり、Clear, Lines.Clear メソッドを実行すると、Undo, Redo バッファが初期化されますので、Undo, Redo は出来なくなります。 という説明があります。 |
||
| 2316 | メッセージハンドラ | コメント数: 3件 |
| shobohn | 2002/08/04 (日) 02:38 | |
| 失礼ついでにメッセージハンドラについてお聞きしたいのですが、 2.38のHEditor.pasの6739行目 L := Min(Message.LParamLo, Length(S)); となっていますが、LParamはポインタであってサイズではないのでは ないでしょうか? 同じく6871〜6884行目 ここでRとCを求めてるわけですが、Resultにこの値は使われてません。 どうしてなんでしょうか? 私のまったくの見当違い、または既知、既出でしたらすみません。 それでは。 |
||
| 2315 | Re^8: EMGetLineについて。 | コメント数: 0件 |
| shobohn | | 2002/08/04 (日) 02:15 | |
| http://www.geocities.co.jp/SiliconValley-Oakland/4672/ | ||
| 本田さん、Foxさん、始めまして。shobohnと申します。 私もTEditor使用エディタ用のツールを公開しているのですが、 最近、私のほうの掲示板でも似たような話題がありましたので、 いろいろ調べてみた結果をご報告したいと思います。 どうやら、Win98(SE)ではEM_GETLINEのLParamがポインタとして 扱われていないようなのです。つまり呼び出し側が、ポインタのつもりで 送った値がアドレス変換されずにそのままエディタ側に送られているので、 同一プロセス内では動作しますが、他プロセス(外部アプリなど)から EM_GETLINEを送ると無効なポインタに書き込もうとするためエラーが 出てしまうのです。 なので、メモ帳などにEM_GETLINEを送った場合でも同様にエラーが出ます。 結局、Win98の不具合(仕様)というのが私の結論です。 長文失礼致しました。それでは。 |
||
| 2314 | Re^4: WM_GETTEXT は、成功しました。(動作報告。) | コメント数: 0件 |
| Fox | 2002/07/27 (土) 11:03 | |
| 本田 さん こんにちは > 誰かが作られたエディタであるならば、素の TEditor が使われているとは > 限らない > という可能性も無いことは無いと言えますね。 EM_GETLINE は、2つのエディタで試してみました。 この辺は、作者さんに確認してみば判るのですが、 改造しても、EM_GETLINEを弄って無ければ、 問題ないですよね? > この際、Delphi を導入されてみてはいかがでしょう? パーソナル版の存在は、知っていました。 しかし、私の環境には、Setupする事が出来ないんです。 物理的な問題で。 Delphiも、Builderも、ちょっとだけ触ったことがある程度で、 標準以外のコンポーネントを使う方法も知りませんし。 今回は、WM_GETTEXT で行ってみようと思います。 色々有り難うございました。 |
||
| 2313 | Re^3: WM_GETTEXT は、成功しました。(動作報告。) | コメント数: 1件 |
| 本田勝彦 | 2002/07/27 (土) 08:22 | |
| 誰かが作られたエディタであるならば、素の TEditor が使われているとは限らない という可能性も無いことは無いと言えますね。 この際、Delphi を導入されてみてはいかがでしょう? http://www.borland.co.jp/delphi/personal/ で無償のパーソナル版がダウンロード出来ます。 パーソナル版でも TEditor は使えますよ。 |
||
| 2312 | Re^2: WM_GETTEXT は、成功しました。(動作報告。) | コメント数: 2件 |
| Fox | 2002/07/26 (金) 23:57 | |
| 本田 さん こんばんは。 > TMemo でも成功しますか? すいません、最初に、よく説明をしておけば良かったのですが、 実は、Delphiを持ってませんし、パスカルでの開発経験がありません。 TEditor を使ったエディタに、独自の機能を追加する、 ツールを作っています。 ですので、TMemo についての知識はありません。 確か、Editに相当するもの? > それと、ハンドルの取得は成功していますでしょうか? これは、TEditor のハンドルで良いのですよね? 勿論、確認しています。 EM_LINEINDEX EM_LINELENGTH EM_GETSEL EM_SETSEL EM_LINEFROMCHAR EM_GETLINECOUNT は、確認済みです。 >> 新たに、WM_GETTEXT を試してみたのですが、こちらは、 >> 上手く行きます。 > 同じ様な実装に EMGetLine を書き換えて試して見て頂けますでしょうか? これが出来たら、私も色々試せるのですが。 上に書いたように、Delphiでの実行が出来ないんです。 逆に、書き換えたTEditor を載せた、単純なフォームだけの、 ツールを頂けたら、テストできるのですが。(お時間があったら。) 因みに、Webを検索していて、Win98SEでもエラーに為ると言う書き込みを、 見ました。 環境:Win98、IE4 |
||
| 2311 | Re: WM_GETTEXT は、成功しました。(動作報告。) | コメント数: 3件 |
| 本田勝彦 | 2002/07/26 (金) 20:41 | |
| TMemo でも成功しますか? それと、ハンドルの取得は成功していますでしょうか? > 新たに、WM_GETTEXT を試してみたのですが、こちらは、 > 上手く行きます。 > 98系では、サイズ制限がありますが…。 同じ様な実装に EMGetLine を書き換えて試して見て頂けますでしょうか? |
||
| 2310 | WM_GETTEXT は、成功しました。(動作報告。) | コメント数: 4件 |
| Fox | 2002/07/26 (金) 11:37 | |
| 本田 さん こんにちは 新たに、WM_GETTEXT を試してみたのですが、こちらは、 上手く行きます。 98系では、サイズ制限がありますが…。 |
||
| 2309 | Re^7: EMGetLineについて。 | コメント数: 1件 |
| Fox | 2002/07/26 (金) 11:35 | |
| Km さん こんにちは > int nLine = 1; // ←文字列を取得する行の行番号 > char szBuffer[ 256 ]; // 文字列を受け取るバッファ > SendMessage( hEdit, EM_GETLINE, nLine, (LPARAM)(LPCSTR)szBuffer ); 遣ってみましたが、ダメでした。 これだと、私が遣ってるものと、余り変わらないような気がします。 元もと動作する環境なら、これでもいけると思いますが…。 (取り敢えず文字列取得の確認だけなら、サイズの設定が、 無くても、szBuffer内のゴミが文字列サイズを上回るサイズに、 相当すれば動く。) 後、今回のケースのような物に、(LPCSTR)を使うとどう言った効果が、 あるんでしょうか? |
||
| 2308 | Re^6: EMGetLineについて。 | コメント数: 2件 |
| Km | | 2002/07/25 (木) 13:10 | |
| > > szbuffの領域確保の方法が間違ってます。sizeof(szbuff);だと、型のサイ > > ズでは? > > それは、違いますよ。 > sizeofに渡しているのは、文字配列の変数ですので、 > この場合は、配列のサイズが返ります。 すみません。勘違いしてました。 試してはいないのですが、こんな感じでどうでしょうか。 int nLine = 1; // ←文字列を取得する行の行番号 char szBuffer[ 256 ]; // 文字列を受け取るバッファ SendMessage( hEdit, EM_GETLINE, nLine, (LPARAM)(LPCSTR)szBuffer ); |
||
| 2307 | Re^5: EMGetLineについて。 | コメント数: 3件 |
| Fox | 2002/07/25 (木) 11:28 | |
| km さん、こんにちは。 > szbuffの領域確保の方法が間違ってます。sizeof(szbuff);だと、型のサイ > ズでは? それは、違いますよ。 sizeofに渡しているのは、文字配列の変数ですので、 この場合は、配列のサイズが返ります。 例: char szLine[32] = ""; printf("%d\n", sizeof(szLine)); printf("%d\n", sizeof(char)); // 型のサイズ取得には、型名を渡す。 結果。 32 1 // 型のサイズ この例では、*(WORD*)szLine = sizeof(szLine); で、 szLine[0] に、32 (0x20) szLine[1] に、0 が入ります。 > szbuffは文字列を受け取るバッファなので、領域の確保してください。 char szLine[32] = ""; が、領域の確保にあたります。 *(WORD*)szLine = sizeof(szLine); で、 サイズを埋め込みます。 |
||
| 2306 | Re^4: EMGetLineについて。 | コメント数: 0件 |
| Fox | 2002/07/25 (木) 11:27 | |
| 本田さん、こんにちは。 素早いレスに、感謝します。 i はどうやって取得されてますでしょうか? 実験のために簡略化して、単純なループをしています。 (0スタートの。) で、ループ数以上の行データを書き込んでます。 ループが3なら、3行以上書き込む感じです。 後、データサイズに、わざと大きな物を渡して、 文字列数でデータを返させるようにもしてみましたが、 ダメでした。 (「Min」で処理分けしてるので、両方遣ってみた。) System.Move が別のプログラム中の変数に対して、 書き込み出来るものなら、そちらが悪いんじゃ無いでしょうか? 文字列を取得するのに、どうしても必要なんですが、 System の問題なら、諦めます。 |
||
| 2305 | Re^4: EMGetLineについて。 | コメント数: 4件 |
| Km | | 2002/07/25 (木) 09:57 | |
| > > *(WORD*)szbuff = sizeof(szbuff); > > nLen = SendMessage(hEdit, EM_GETLINE, (WPARAM)i, (LPARAM)szbuff); > > これ、Cでないかい?・・・Km さ〜ん(^^; szbuffの領域確保の方法が間違ってます。sizeof(szbuff);だと、型のサイズでは? szbuffは文字列を受け取るバッファなので、領域の確保してください。 |
||
| 2304 | Re: 行数、列数からキャレットの座標を取得 | コメント数: 0件 |
| 本田勝彦 | 2002/07/25 (木) 02:27 | |
| > 行数、列数からキャレットの座標(x,y)を取得することは出来るのでしょうか。 キャレットがそこに居れば、GetCaretPos でしょうけれども、違いますよね。 heditor.pas に TEditor.SetCaretPosition というメソッドがありますので、 参考にして見て下さい。 |
||
| 2303 | Re^3: EMGetLineについて。 | コメント数: 6件 |
| 本田勝彦 | 2002/07/25 (木) 02:23 | |
| > *(WORD*)szbuff = sizeof(szbuff); > nLen = SendMessage(hEdit, EM_GETLINE, (WPARAM)i, (LPARAM)szbuff); これ、Cでないかい?・・・Km さ〜ん(^^; > 判らないなりに、TEditor のソースも見てみましたが、 > 問題ないような気がします。 > System クラス?のバグでしょうか? szbuff のアドレスが渡ればそこに流し込んでくれるハズなのですが。 i はどうやって取得されてますでしょうか? |
||
| 2302 | Re^2: EMGetLineについて。 | コメント数: 7件 |
| Fox | 2002/07/25 (木) 01:10 | |
| 本田 さん こんばんは 早速のレス有り難うございます。 > で取得出来ました。Edit1 で旨くいったコードを見せて頂けると私が実装で > 勘違いしている部分が判明するかもしれません。 > が、TEditor のプロパティを使うともっと簡単に取得出来ます。 全く別のプログラムから、Msgを投げてます。 なので、プロパティは、使えません。 それと、Editとは、Win標準の物で、Delphiの物でないです。 以下が、実験したコードの一部分です。 本田さんの物と、同じ様な感じです。(多分。) *(WORD*)szbuff = sizeof(szbuff); nLen = SendMessage(hEdit, EM_GETLINE, (WPARAM)i, (LPARAM)szbuff); 判らないなりに、TEditor のソースも見てみましたが、 問題ないような気がします。 System クラス?のバグでしょうか? |
||
| 2301 | 行数、列数からキャレットの座標を取得 | コメント数: 1件 |
| 武岡 | 2002/07/24 (水) 23:21 | |
| 先日、TEditorコンポーネントをDLさせていただきました。 そこで、一つ質問があるのですが 行数、列数からキャレットの座標(x,y)を取得することは出来るのでしょうか。 |
||