~katsuhiko メッセージボード

back 2151-2200

2201-2250

2251-2300


2250 Re^5: 御礼 コメント数:  0件
  Yokka   | 2002/06/06 (木) 22:36
 http://www.yokka.com/yokkasoft/
 ご報告が遅れました。
 神様のホームページにリンクさせて頂きました。
 リンクの許可をいただきありがとうございます。



2249 Re^3: TFountain.InitReserveWordList コメント数:  1件
  パンタグラフ  | 2002/06/05 (水) 15:34
 http://homepage1.nifty.com/cosmic/
亀レスです。

>type TMyFountain = class(TFountain);
>TMyFountain(TargetFountain).InitReserveWordList;
>
>というのはどうでしょね。

これが出来るのは知ってるんですが、現状のコンパイラならいいですが、
Delphi.NET では大丈夫ですかねー。


> TargetFountain.ReserveWordList.Clear; // 追加して下さい。

これって、TFountain.InitReserveWordList 内でやってもらったほうが
良いような気もします。




2248 Re^4: 御礼 コメント数:  1件
  Yokka   | 2002/06/04 (火) 00:25
 http://www.yokka.com/yokkasoft/
 Yokkaです。
> おぉ素晴らしい。出来れば皆さんの幸せのために公開して欲しいです。
 本当に本当にコピーして作ったものですから・・・。
 相当、酔っぱらって前後不覚にならないと公開できないです・・・。

> それと、「様」はやめてね。「さん」くらいは付けて欲しいですが(^^;
 本当に困っていたところにHEDITORと出会ったもので、つい(^-^)。神様に出会ったようなものです。神様が神さんではおかしいでしょ(^-^)。
 と、いいつつ、お言葉に甘えまして、以後本田さんと呼ばせていただきます。
 ほぼ毎日、新バージョンのチェック、勉強のためおじゃましております。今後ともよろしくお願いします。 



2247 Re^3: 御礼 コメント数:  2件
  本田勝彦 2002/06/04 (火) 00:00
>  私の方からもリンクさせていただいてよろしいですか?本日、業務で午前様の予定ですので、明日以降になると思いますが、よろしければ張らせてください。

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

> > PL/SQL は Fountain を用意されたのでしょうか?
>  はい。本田様のソースや、ここにも書き込まれていらっしゃるKmさまのソースを参考に(コピーして・・・)作りました。

おぉ素晴らしい。出来れば皆さんの幸せのために公開して欲しいです。
それと、「様」はやめてね。「さん」くらいは付けて欲しいですが(^^;



2246 Re^2: 御礼 コメント数:  3件
  Yokka   | 2002/06/03 (月) 23:46
 http://www.yokka.com/yokkasoft/
 いやぁ、こうしてレスをつけていただくと、どきどきしますね(^-^)。
 しかも、リンクまで張っていただきまして。ありがとうございます。
 私の方からもリンクさせていただいてよろしいですか?本日、業務で午前様の予定ですので、明日以降になると思いますが、よろしければ張らせてください。

> PL/SQL は Fountain を用意されたのでしょうか?
 はい。本田様のソースや、ここにも書き込まれていらっしゃるKmさまのソースを参考に(コピーして・・・)作りました。
 こういった拡張性があるのもHEDITORのいいところですよね。



2245 Re: 御礼 コメント数:  4件
  本田勝彦 2002/06/03 (月) 22:45
ようこそいらっしゃいませ。
リンクさせて頂きました。

PL/SQL は Fountain を用意されたのでしょうか?



2244 御礼 コメント数:  5件
  Yokka   | 2002/06/03 (月) 15:00
 http://www.yokka.com/yokkasoft/
 Yokkaと申します。はじめまして。
 レジストさせていただいてから、一度もお礼をお伝えしていなかった失礼をお許しください。
 改めてお礼の意を、書き込ませていただきます。
 私はある企業の情報管理部門に勤務しておりまして、このところオラクルデータベースを使用したシステムを構築することが多くなっております。
 そこで、
1. PL/SQLやSQLのキーワードを強調表示できる
2. オラクルに直接接続しPL/SQLをコンパイルできる
機能をもったエディタをつくりたく、いろいろトライしておりました。
 初期の頃はVBで作っておりましたが、速度的に満足できず途方にくれておりました。
 ある掲示板で本田様のHEDITORのことを知りまして、本田様が公開されていらっしゃる技術情報のコピー&ペーストではありますが、私の技術力でも何とか速度的にも満足できるものができました。
 全く知らなかったDELPHIでのコーディングですので、(書籍代はそれなりにかかりましたが^^)勉強もできました。
 調子に乗って、ホームページで公開までさせていただいております。
 本当にありがとうございます。
 今後とも、よろしくお願いいたします。



2243 Re^3: ListStringとLines コメント数:  0件
  sakazuki   | 2002/06/02 (日) 19:12
 http://homepage2.nifty.com/sakazuki/rde.html
sakazukiです。
> 例外がでることを当てにしたコーディングをする人もいらっしゃると思いますので、変えたくはない部分です。

なるほど、わかりました。そうですね。

> なので、ループさせる時に
> for I := 0 to Min(Lines.Count - 1, Row) do
> といった工夫をして見て下さい。

お、結構シンプルな回避策がありましたね。使わせていただきます。それまでは。カーソルが、[EOF]位置にいることを判定させるのに、SelStartと、Editor.Lines.TextのLengthをとって比較して・・・というような処理を書いてました。

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



2242 Re^2: ListStringとLines コメント数:  1件
  本田勝彦 2002/06/01 (土) 12:40
> for i := 0 to Editor.Row do
> でした。
> Rowは[EOF]だけの行を指しうるので、カーソル行まで何かさせたいという処理が書きにくいというのがいいたかったことです。

例外がでることを当てにしたコーディングをする人もいらっしゃると思いますので、変えたくはない部分です。

仮に、お望みの動作が実現された場合、List.Count = 0 の時でも処理が実行可能になりますので、処理の流れの中で、文字列オブジェクトへアクセスしようとした時にも例外が発生するという問題にも対処しなければならなくなると思いますが。

なので、ループさせる時に
for I := 0 to Min(Lines.Count - 1, Row) do
といった工夫をして見て下さい。



2241 Re^2: TFountain.InitReserveWordList コメント数:  2件
  本田勝彦 2002/06/01 (土) 12:27
> type TMyFountain = class(TFountain);

TargetFountain.ReserveWordList.Clear; // 追加して下さい。

> TMyFountain(TargetFountain).InitReserveWordList;



2240 Re: ListStringとLines コメント数:  2件
  sakazuki   | 2002/06/01 (土) 11:02
 http://homepage2.nifty.com/sakazuki/rde.html
> こうでないと、for i := 0 to Editor.Lines.Count - 1 do
> のループが書けないのです。(最後で例外となる)
ここの部分間違えました。修正します。
for i := 0 to Editor.Row do
でした。
Rowは[EOF]だけの行を指しうるので、カーソル行まで何かさせたいという処理が書きにくいというのがいいたかったことです。



2239 ListStringとLines コメント数:  3件
  sakazuki   | 2002/06/01 (土) 10:44
 http://homepage2.nifty.com/sakazuki/rde.html
sakazukiです。
Wordwrapなしの場合、ListString[i]とLines[i]の動作は同じであることを期待したいのですが、最終行が[EOF]だけの場合、ListString[i]は空文字('')を、Lines[i]はEStringListError(インデックスの範囲を超えている)例外を返します。
HEditor.pas
function TEditorStrings.Get(Index: Integer): String;

if not FEditor.WordWrap then
Result := FEditor.FList[Index]

if not FEditor.WordWrap then
Result := FEditor.ListStr(Index)
としてもらえませんでしょうか?
こうでないと、for i := 0 to Editor.Lines.Count - 1 do
のループが書けないのです。(最後で例外となる)



2238 Re: TFountain.InitReserveWordList コメント数:  3件
  本田勝彦 2002/06/01 (土) 10:44
そう言えば、TFountain コンポーネントエディタにも、デフォに戻すボタンは
付いていませんね。

でも、コンストラクタのヘルパーメソッドが public って何だかなぁな気もします。

type TMyFountain = class(TFountain);
TMyFountain(TargetFountain).InitReserveWordList;

というのはどうでしょね。



2237 Re: TEditor 2.38 コメント数:  0件
  Km   | 2002/05/31 (金) 22:17
> ご指摘を頂きましたバグフィックスバージョンを公開致しました。
>
> ver 2.38 です。お試し下さいまし。

ありがとうございます。早速ダウンロードして試してみます。



2236 TFountain.InitReserveWordList コメント数:  4件
  パンタグラフ  | 2002/05/31 (金) 18:11
 http://homepage1.nifty.com/cosmic/
ご無沙汰しております。

アプリケーション中から、既にフォームに置かれた Fountain の
予約語リストを初期化したいのですが、InitReserveWordList
メソッドが protected なので、アプリケーションからは直接
呼べず、困りました。

これは、public に出来ないでしょうか。
まあ InitReserveWordList を override している継承コンポでも
public に直さないといけなくなってしまうのですが(^^;

今は

 TempFountain := TFountain(TComponentClass(Fountain1.ClassType).Create(nil));
 Fountain1.ReserveWordList.Assign(TempFountain.ReserveWordList);
 TempFountain.Free;

などとして新しい Fountain を生成して、予約語リストを
Assign して凌いでいますが……。



2235 TEditor 2.38 コメント数:  1件
  本田勝彦 2002/05/31 (金) 02:09
ご指摘を頂きましたバグフィックスバージョンを公開致しました。

#WM_IME_COMPOSISTION コメントも書き直しましたです。

ver 2.38 です。お試し下さいまし。



2234 Re: 2.37のHitSelLengthで少し不具合があります コメント数:  2件
  本田勝彦 2002/05/30 (木) 11:02
確認致しました。バグです。
DefaultCaretWidth と文字数を同じ扱いにしていました。

今晩のウチにでも修正版を公開したいと思います。
ご指摘ありがとうございました。



2233 2.37のHitSelLengthで少し不具合があります コメント数:  3件
  Km   | 2002/05/30 (木) 02:52
本田さん、こんにちは。
TEditor2.37でHitStyleがhsCaretの時、
HitSelLength := 1とすると2バイト分のキャレットの長さになります。
(タブ文字の時は正しい長さとなります)
SetHitSelLengthを修正していただいた時、どうも紛れ込んでしまった
みたいです。2.36では1バイト分となっていました。
余計な修正を依頼してしまったみたいで、すみませんm(_ _)m



2232 Re^4: ユーザ補助 コメント数:  0件
  にしの 2002/05/26 (日) 11:14
HEditor.pasの、
DefaultCaretWidth = 2;
となっているところを、コメントアウトし、同じファイルのimplementationの前に、
function DefaultCaretWidth: integer;
を追加。
implementation部のuses節に、Registryを追加。

そして、次のような関数を定義してみてください。
WindowsXP Pro + Delphi5 Proではうまく動きました。
HEditorを変更したくないのであれば、TEditorを継承し、RecreateCaretを再定義すれば動くと思います。

function DefaultCaretWidth: integer;
var
 Reg: TRegistry;
begin
 Result := 2; // DEFAULT_CARET_WIDTH;

 Reg := TRegistry.Create(KEY_READ);
 try
  Reg.RootKey := HKEY_CURRENT_USER;
  if Reg.OpenKey('\Control Panel\Desktop', False) then
  begin
   Result := Reg.ReadInteger('CaretWidth');
  end;
 finally
  Reg.CloseKey;
  Reg.Free;
 end;
end;



2231 Re^3: ユーザ補助 コメント数:  1件
  本田勝彦 2002/05/24 (金) 23:17
> HEditor で何か特別なことをしていませんか?

TEditor は TEdit, TMemo, TRichEdit などのいわゆる Windows 標準コントロールではありません。Delphi で新規プロジェクトを作成し Form1.OnClick に以下のコードを書いて実行し、ユーザー補助機能を試して見て下さい。

procedure TForm1.FormClick(Sender: TObject);
var
Pos: TPoint;
begin
GetCursorPos(Pos);
Pos := ScreenToClient(Pos);
CreateCaret(Form1.Handle, 0, 20, 40);
SetCaretPos(Pos.X, Pos.Y);
ShowCaret(Form1.Handle);
end;

キャレットの大きさは変わらないでしょ?Windows 標準コントロールは、
CreateCaret(Form1.Handle, 0, 20, 40);
の部分が、ユーザー補助機能に対応しているのだと思われます。

なので、前出の方法で TEditor を拡張して対応して下さい。



2230 Re^2: ユーザ補助 コメント数:  2件
  たけ(tk)   | 2002/05/24 (金) 20:29
> 1.アプリにユーザー補助を検知する機能を実装する。
> 2.TEditor.RecreateCaret を override して、ユーザー補助に対応したキャレットを作成する。
>
> という手順になると思います。

ふむ。自動的には変わらないのか。
普通の TMemo や TEdit では自動的に変わるみたいです。実行中に変更しても変わる。
HEditor で何か特別なことをしていませんか?



2229 Re: ユーザ補助 コメント数:  3件
  本田勝彦 2002/05/23 (木) 21:27
1.アプリにユーザー補助を検知する機能を実装する。
2.TEditor.RecreateCaret を override して、ユーザー補助に対応したキャレットを作成する。

という手順になると思います。



2228 Re: ユーザ補助 コメント数:  0件
  sakazuki   | 2002/05/23 (木) 17:06
sakazukiです。
> HEditor でもユーザ補助でカーソルの幅が変わるようにするにはどうすればよいのでしょうか?

http://www.wwlnk.com/boheme/delphi/tips/tec0840.htm
が参考になるかと。



2227 ユーザ補助 コメント数:  5件
  たけ(tk)   | 2002/05/23 (木) 16:42
たけ(tk)です。

今日ひょんなことから「ユーザ補助」とかいう画面に遭遇してしまいました。シフトキーを8秒以上押していたとかで、そのままOKしたらキーボードが操作不能になってしまった。それはそれとして、

ユーザ補助の中に、「カーソルのオプション」というのがありまして、カーソルの点滅の速さ、Iカーソルの幅、というのの指定が出来るようになっていました。

カーソルの点滅の速さを変えると、HEditorの画面でも速くなりましたが、

カーソルの幅を変更しても変わりませんでした。(メモ帳では変わった)。

HEditor でもユーザ補助でカーソルの幅が変わるようにするにはどうすればよいのでしょうか?



2226 Re^2: ハンドルエラー コメント数:  0件
  本田勝彦 2002/05/23 (木) 10:36
TEditor も SrollBars プロパティ設定で Windows2000 でエラーが出るという指摘を受けて現在の形になった経緯があります。




2225 Re: ハンドルエラー コメント数:  1件
  sakazuki   | 2002/05/23 (木) 09:41
sakazukiです。
その後調べたところ、私のところでもWindows98では発生しませんでした。
Windows NT4SP5, Windows2000, WindowsXPでは発生するようです。
むー。OSのバージョン毎による開発時の注意点をまとめたような情報源ってどこかにないかなー。



2224 Re^3: ハンドルエラー コメント数:  0件
  sakazuki   | 2002/05/23 (木) 06:07
 http://homepage2.nifty.com/sakazuki/rde.html
sakazukiです。

私の環境は、Windows2000pro, WindowsXPですが、両方で発生してしまいます。
読み込む文章量を7000行ぐらいとすると、例外は発生せず、7500行とすると発生するという状況も確認できました。
Delphi5 pro, Delphi6 personal双方でコンパイルしてみても同じでした。

> そう言えば、TEditor のサンプルを作っていて、よそのフォームからコントロールを引っ張ってくる処理がエラーを発生させ、FormCreate, FormShow と色々試しても駄目で、結局今のスタイル、つまり .dpr の中で、TForm1 のインスタンスが完成してから、Form1 のメソッドを実行するという方式に落ち着いたという経緯があります。
>
> 原因は不明でしたが、ハンドル生成のタイミングがらみと言えなくも無いような気がします。

確かに、データ量が影響するところからも、生成タイミングの問題のような気がしますね。
VCL内でのUnDockの処理をもう少し調べてみます。



2223 Re^2: ハンドルエラー コメント数:  1件
  本田勝彦 2002/05/22 (水) 23:58
そう言えば、TEditor のサンプルを作っていて、よそのフォームからコントロールを引っ張ってくる処理がエラーを発生させ、FormCreate, FormShow と色々試しても駄目で、結局今のスタイル、つまり .dpr の中で、TForm1 のインスタンスが完成してから、Form1 のメソッドを実行するという方式に落ち着いたという経緯があります。

原因は不明でしたが、ハンドル生成のタイミングがらみと言えなくも無いような気がします。



2222 Re: ハンドルエラー コメント数:  4件
  本田勝彦 2002/05/22 (水) 23:32
ダウンロードして Delphi6 personal (^^; で実行して見ました。
くっつけたり離したり自由自在でっせぇ〜おもしろいですね。

ハンドルエラーは出ませんでした。なしてでしょ?




2221 Re: ATOKの再変換 コメント数:  0件
  にしの 2002/05/22 (水) 16:26
>  私も一時期そういう気分になりました(^^; 私自身は途中で投げてしまいました(IME98のみで妥協したともいう)が、以下の記事が参考になるかもしれません(サンプルはVB)。
>
> [コードから再変換]
> http://www.netlaputa.ne.jp/~stadt/vb/t12_ime/reconvert.htm

実はこの記事を元にDelphiへ移植したんですが^^;
VBの場合、最初からUnicodeですから、ATOK関連もスムースに行くようです。
# 但し、別の再変換プログラム(VB)を、自宅のATOKでするとエラーになりましたが

時間が出来れば、もう少し綺麗に書き直します。



2220 Re^2: 参考になります コメント数:  0件
  ほしけん  | 2002/05/22 (水) 09:56
 http://www.hosiken.Afis.To/
私の投稿ミスのせいでややこしくなってしまいました。ごめんなさい。

> こちらは、ATOKの再変換が気になって気になって…。
> ATOKの再変換はできましたか?Unicodeにしなきゃいけないところまでは解ったのですが。

私もATOKを所有していないので確認していません。
ATOKがインストールされているマシンが身近にあれば、ぜひ試してみたいのですが、
思い当たるのは学校の近所のソフマップ(一太郎のデモ機)ぐらいでしょうか(^^;

> http://www.justsystem.co.jp/tech/atok/api12_00.html
> ここに、技術資料が出ています。

どうもありがとうございます。随分と分かりやすいですね。(MSとは大違い…)



2219 ハンドルエラー コメント数:  5件
  sakazuki   | 2002/05/22 (水) 07:35
 http://homepage2.nifty.com/sakazuki/rde.html
sakazukiです。
TEditorの範疇ではないのかもしれませんが、Dockable Form上におおきいファイルを読み込ませたTEditorをおいてドッキングを解除するとハンドルエラーに遭遇します。

再現ソースを下記に起きました。
http://homepage2.nifty.com/sakazuki/test_handleerror.lzh
タブページをドラッグしてドッキングを解除するとエラーが発生します。
procedure TEditor.CreateHandle;
begin
inherited CreateHandle;
の中で失敗しているみたいなんですが、何か回避策がわかれば、アドバイスをいただけませんでしょうか?
よろしくお願いします。



2218 ATOKの再変換 コメント数:  1件
  DEKO   | 2002/05/22 (水) 06:26
 http://homepage1.nifty.com/ht_deko/
>こちらは、ATOKの再変換が気になって気になって…。

 私も一時期そういう気分になりました(^^; 私自身は途中で投げてしまいました(IME98のみで妥協したともいう)が、以下の記事が参考になるかもしれません(サンプルはVB)。

[コードから再変換]
http://www.netlaputa.ne.jp/~stadt/vb/t12_ime/reconvert.htm



2217 Re^2: クリック & ダブルクリック コメント数:  0件
  ゆうきひろ 2002/05/22 (水) 01:35
にしのさん、こんばんわ。
> ワンクリック目でURLを選択したときにキャレットが移動してしまうのが原因でしょう。
 ああ、なるほど、そうですね!! どうもありがとうございました。



2216 Re^2: 参考になります コメント数:  0件
  本田勝彦 2002/05/21 (火) 23:21
発言削除処理をやったら、にしのさんのコメントが浮いてしまいました。
申し訳ないです。




2215 Re^7: 再変換したい コメント数:  0件
  本田勝彦 2002/05/21 (火) 23:01
お手数をお掛けいたしました。
初めて見るAPIの連続で???状態です(^^;
D4でIDEから実行しても例外は出ませんでした。
IME98 ではそれらしく動作しますが、ATOK10 では無視されるようです。




2214 Re: 参考になります コメント数:  4件
  にしの 2002/05/21 (火) 21:22
> 非常に参考になりました。本当にありがとうございます。
>
> にしのさんと本田さんのサンプルを両方試してみました。
> どちらもバッチリ再変換できました。今はソースを読んでいるところで、
> おかげさまでどうにか解決まで至りそうです。

良かったですね。
こちらは、ATOKの再変換が気になって気になって…。
ATOKの再変換はできましたか?Unicodeにしなきゃいけないところまでは解ったのですが。
http://www.justsystem.co.jp/tech/atok/api12_00.html
ここに、技術資料が出ています。



2213 Re: 再変換したい コメント数:  0件
  ほしけん  | 2002/05/21 (火) 20:50
 http://www.hosiken.Afis.To/
非常に参考になりました。本当にありがとうございます。

にしのさんと本田さんのサンプルを両方試してみました。
どちらもバッチリ再変換できました。今はソースを読んでいるところで、
おかげさまでどうにか解決まで至りそうです。

# imm なんてユニットがあったのですね。どうりで今まで解決しなかったはず…(^^;



2212 Re^2: クリック & ダブルクリック コメント数:  0件
  にしの 2002/05/21 (火) 17:07
> それと、メールのばあいは'mailto:'プロトコルを付けないとShellExecuteは失敗すると思います。

これは余分でした。
僕のやり方だと、DblClickのときにmailtoなのか、httpなのかはすぐには判別できないので。



2211 Re: クリック & ダブルクリック コメント数:  2件
  にしの 2002/05/21 (火) 17:04
>  以下はワンクリックで URL、Mail 文字列を選択、ダブルクリックでブラウザ、メーラーを起動することを意図したものですが、ダブルクリックのほうが機能しません。ワンクリックを無効にしたらもちろん機能します。どこに問題があるのでしょう?
ワンクリック目でURLを選択したときにキャレットが移動してしまうのが原因でしょう。
OnClickのとき、
 URLの時はそのURLを選択、一時的に変数に保存しておく。
 URLでなければ、保存してあるURLをクリア。
OnDblClickのとき、
 URLが保存してあれば呼び出し。
 保存してあるURLをクリア。
でどうでしょう。

それと、メールのばあいは'mailto:'プロトコルを付けないとShellExecuteは失敗すると思います。



2210 クリック & ダブルクリック コメント数:  3件
  ゆうきひろ 2002/05/21 (火) 16:40
 以下はワンクリックで URL、Mail 文字列を選択、ダブルクリックでブラウザ、メーラーを起動することを意図したものですが、ダブルクリックのほうが機能しません。ワンクリックを無効にしたらもちろん機能します。どこに問題があるのでしょう?

procedure TForm1.Editor1Click(Sender: TObject);
var
 aPos: TPoint;
 C: Char;
begin
 GetCaretPos(aPos);
 C := Editor1.TokenFromPos(aPos); //aPos で指定された位置にある語句の種類を返す
 if (C = toUrl) or (C = toMail) then
  Editor1.SelectTokenFromPos(aPos);
end;

procedure TForm1.Editor1DblClick(Sender: TObject);
var
 S: String;
 C: Char;
begin
 C := Editor1.TokenBracketFromCaret;     // 語句の種類を返す
 if (C = toUrl) or (C = toMail) then
 begin
  if C = toUrl then
   S := Editor1.TokenStringBracketFromCaret // 語句を返す
  else if C = toMail then
   S := 'mailto:' + Editor1.TokenStringBracketFromCaret;
  ShellExecute(Handle, 'OPEN', PChar(S), '', '', SW_SHOW);
 end else
  Editor1.SelectTokenBracketFromCaret;
end;



2209 Re^6: 再変換したい コメント数:  1件
  にしの 2002/05/21 (火) 14:52
> これ、どこかにアップロードして頂けませんでしょうか?ほしけんさんが大した喜ばれると思いますし、私も見たいです。
> メールで送って頂いて、差し支えなければ、公開させて頂いても構いません。

http://www.overs.jp/software/download/immreconv.zip
ここにアップしました。
サーバ移転予定のため、来月くらいには無くなるかもしれません。

ユニットにしたので使いやすいかと。

# でも、何かが違う気がする・・・。
# CPUウィンドウが表示されるし。



2208 Re^5: 再変換したい コメント数:  2件
  本田勝彦 2002/05/21 (火) 13:13
これ、どこかにアップロードして頂けませんでしょうか?ほしけんさんが大した喜ばれると思いますし、私も見たいです。
メールで送って頂いて、差し支えなければ、公開させて頂いても構いません。




2207 Re^4: 再変換したい コメント数:  0件
  本田勝彦 2002/05/21 (火) 13:11
どうやら、「再変換」に対する私の概念が古かったようです。かなり昔(DOS時代か?)直前の IME 入力を再入力出来たので、それのことだと思っていました。
一応サンプルも作って見ました。
http://compodev.at.infoseek.co.jp/imereset.html

任意の場所を選択し、その文字列に対して再変換処理を行うのですね。その文字列の読み仮名(半角又は全角のカタカナ)を取得することさえ出来れば可能ですが、だから *.TBL が必要だと。




2206 Re^4: 再変換したい コメント数:  3件
  にしの 2002/05/21 (火) 09:25
はじめまして、にしのです。

バグだらけで、例外びしばし発生するサンプルでよければ^^;
再変換できましたがいりますか?
Delphi5(多分update済み)+Windows2000SP2+MSIME2000です。
Atokが入っている環境ではないので、Atokのテストはしていませんが…。

ImmGetDefaultIMEWndでIMEのハンドルを取得、ImmGetContextでIMEコンテキストを取得、WM_MSIME_RECONVERTREQUESTをSendMessageして、RECONVERTSTRINGのバッファを確保、ImmSetCompositionStringを読んだり・・と、ちょっとここで書くには長すぎます。



2205 Re^3: 再変換したい コメント数:  5件
  DEKO   | 2002/05/21 (火) 00:21
 http://homepage1.nifty.com/ht_deko/
>でどうでっしゃろ?

 一番下の奴はリンク切れで見れませんでしたが、少なくとも2番目の奴を実現するには「MS-IME98」が必要です。「MS-IME98以降」ではなく「MS-IME98」です。

 あちこち調べるとお解りいただけると思いますが、*.TLBがIME98にしか付属していない為です。MSにも転がっていません(ToT)



2204 Re^2: 再変換したい コメント数:  6件
  本田勝彦 2002/05/20 (月) 21:12
http://www.users.gr.jp/ml/archive/delphi/36959.asp
http://www.users.gr.jp/ml/archive/delphi/37021.asp
http://www.ceres.dti.ne.jp/~goto-ta/windows/felang.html

でどうでっしゃろ?






2203 Re: 再変換したい コメント数:  7件
  本田勝彦 2002/05/20 (月) 21:02
私には実現出来るだけの技量は無いですが、MS のヘルプを WM_IME_CHAR で検索して、そこからのトピックをず〜っと読んで行っても辿り着けないのでしょうか?

読み仮名を求められるのであれば、それを保存しておき、再変換要求に対しては IME にその文字列を渡すという処理で良いのではないでしょうか?



2202 BCB6にTEditorをインストール成功しました コメント数:  0件
  かみまま  | 2002/05/20 (月) 15:49
> 本田勝彦さん、Kmさん、こんにちわ
> お手数おかけいたします。
> 月曜日(5/21)になりましたら再度インストール
> を試して、結果をご報告いたします。
> ではでは

今日(5/20)、Kmさんのホームページのインストールの
手順通りにインストールしました。
問題なくインストールが完了いたしました。
これからは、プログラムに励みたいと
思います。
本当にありがとうございました。m(_ _)m



2201 Re^2: Tabキーでインデントさせたい コメント数:  0件
  ほしけん  | 2002/05/20 (月) 10:22
 http://www.hosiken.Afis.To/
あっ、確かに OnKeyPress できました(^^; どうもありがとうございます。
こんなしょーもないことでお手数をおかけして申し訳ありません。