#10490

Delフサ
参加者

暫定的においてみました。
http://delfusa.main.jp/temp/ReplaceText.zip

たぶん、これで大丈夫だと思うのですが、どうでしょうか。
試してみてください。

行頭文字指定は動きました。

単語単位指定や、大文字小文字対応も動くと思うんですが…

以下、
開発者にしか分からないですが、ソースはこんな感じ。
コンパイラをD2007からDelphiXEに変更したのですが、ちゃんと動いているみたい。

メイン抜粋
   EmReplaceFlag :=
    FLAG_FIND_REG_EXP or

    FLAG_REPLACE_SEL_ONLY or
    FLAG_REPLACE_ALL or
    FLAG_FIND_NO_PROMPT or
    FLAG_FIND_CLOSE;

   if ReplaceFlagWord then {←単語単位指定}
   begin
    EmReplaceFlag := EmReplaceFlag or FLAG_FIND_ONLY_WORD;
   end;
   if ReplaceFlagCaseCompare = ccCaseSensitive then {←大小文字区別指定}
   begin
    EmReplaceFlag := EmReplaceFlag or FLAG_FIND_CASE;
   end;

   for i := 0 to Length(OldPatterns)-1 do
   begin
    Editor_ReplaceW_Delphi(hwnd,
     OldPatterns, NewPatterns, EmReplaceFlag);
   end;
   Editor_ExecCommand(hwnd, EEID_ERASE_FIND_HILITE);

関数部分
procedure Editor_ReplaceW_Delphi(hwnd: HWND;
const OldPattern, NewPattern: WideString;
nFlags: Longword = FLAG_REPLACE_ALL+FLAG_REPLACE_SEL_ONLY);
var
 WideStr: WideString;
begin
 WideStr := OldPattern + #0 + NewPattern + #0;

 Editor_ReplaceW(hwnd, nFlags,
         PWideChar(WideStr));
 {↓検索強調文字の解除}
// Editor_ExecCommand(hwnd,EEID_ERASE_FIND_HILITE);
end;