2013-07-26 2 views
0

나사로 프로젝트의 TSynEdit 구성 요소에 검색 기능을 추가하고 기능을 바꾸려고합니다. TSynEdit.SearchReplace(), TFindDialog 및을 사용하고 있습니다. TReplaceDialog.Lazarus - TReplaceDialog - '바꾸기'또는 '모두 바꾸기'를 클릭하는 방법

모든 내가이 '교체'또는 버튼 바꾸기 대화 상자에서 클릭 된 '모두 바꾸기'여부를 결정하는 방법을 찾을 수없는 것을 제외하고, 거의, 내가 필요로 일하게 될 것으로 보인다.

OnFind 이벤트와 OnReplace 이벤트에 대한 코드를 작성했지만 OnReplaceAll 이벤트가없는 것 같습니다. 나는이 날을 밟은의 버튼을 결정하는 것을 허용하는 어떤 재산권 또는 기타를 볼 수없는 TReplaceDialog 항목에 대한 자동 도움말 팝업을 보면

.

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

감사합니다,

FM OnReplace 이벤트에서

답변

1

frReplaceAllOptions에 있는지 확인 :이 예는 Delphi XE 4 documentation에서입니다

procedure TForm1.ReplaceDialog1Replace(Sender: TObject); 
begin 
    with Sender as TReplaceDialog do 
    begin 
    if frReplace in Options then 
    DoReplace(ReplaceDialog1.FindText, ReplaceDialog1.ReplaceText) 
    else if frReplaceAll in Options then 
    DoReplaceAll(ReplaceDialog1.FindText, ReplaceDialog1.ReplaceText); 
    end; 
end; 

하지만 대화가 있어야한다 동일한 기본 구현 세부 사항.

+0

바른 길에 저를 얻었다 그! @Ken에게 감사합니다. 나는 실제로 그것을 조금 단순화 TReplaceDialog이 frReplace 옵션의 경우처럼 다음 은 (optionsForReplace, ssoReplace)를 포함 보낸 사람과'사용하고 다른 frReplaceAll 옵션에 다음 이 (optionsForReplace, ssoReplaceAll)를 포함하면, 완벽하게 작동한다'. –