Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
FindDialog, ReplaceDialog관련
간단한 메모장을 만들어 보고 있습니다.
RichEdit콘트롤을 사용하여 작성하고 있는데
이곳에 있는 문자를 찾거나 바꿀수 있는 기능을 넣을려고
합니다.
근데 FindDialog, ReplaceDialog 콤포넌트의 기능을 알고
싶군요. 단순히 다이알로그 박스만 나타내주는 것인지
실제로 찾기, 바꾸기 의 기능을 해주는 콤포넌트인지...
어줍잖은 실력으로 찾기,바꾸기 코딩을 하기보다는
활용하는게 현재로서는 좋을것 같아서요.. 답변부탁드립니다.
1
COMMENTS
한
•
1999.05.27 21:33
지니 께서 말씀하시기를...
>
> 간단한 메모장을 만들어 보고 있습니다.
> RichEdit콘트롤을 사용하여 작성하고 있는데
> 이곳에 있는 문자를 찾거나 바꿀수 있는 기능을 넣을려고
> 합니다.
>
> 근데 FindDialog, ReplaceDialog 콤포넌트의 기능을 알고
> 싶군요. 단순히 다이알로그 박스만 나타내주는 것인지
> 실제로 찾기, 바꾸기 의 기능을 해주는 콤포넌트인지...
>
> 어줍잖은 실력으로 찾기,바꾸기 코딩을 하기보다는
> 활용하는게 현재로서는 좋을것 같아서요.. 답변부탁드립니다.
음냐....
예제 입니다.
procedure TForm1.Button1Click(Sender: TObject);
begin
FindDialog1.Execute;
end;
procedure TForm1.FindDialog1Find(Sender: TObject);
var
FoundAt: LongInt;
StartPos, ToEnd: integer;
SearchType : TSearchTypes;
begin
with RichEdit1 do
begin
SearchType := [];//FindText메서드에 쓰일 옵션
// 대/소문자구별, 단어검색 조검만 줄수 있다.
//대소문자 구별인지 검사
if (frMatchCase in FindDialog1.Options ) then
SearchType := SearchType + [stMatchCase];
// 단어 검색인지 검사
if (frWholeWord in FindDialog1.Options ) then
SearchType := SearchType + [stWholeWord];
//검색순서가 현재 부터 위/아래인지 검사
if (frDown in FindDialog1.Options ) then
begin
StartPos := SelStart;
ToEnd := Length(Text) - StartPos;
end
else
begin
StartPos := 0;
ToEnd := SelStart;
end;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, SearchType);
if FoundAt <> -1 then
begin
FindDialog1.CloseDialog; //단어를 발견하면 검색창을 닫는다.
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ReplaceDialog1.Execute;
end;
procedure TForm1.ReplaceDialog1Find(Sender: TObject);
begin
ShowMessage('OnFind');
end;
procedure TForm1.ReplaceDialog1Replace(Sender: TObject);
begin
if frReplaceAll in ReplaceDialog1.Options then
ShowMessage('OnReplaceAll')
else
ShowMessage('OnReplace')
end;
그럼...
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
지니
•
1999.05.27 20:57
1
COMMENTS
/
0
LIKES
FindDialog, ReplaceDialog관련
간단한 메모장을 만들어 보고 있습니다. RichEdit콘트롤을 사용하여 작성하고 있는데 이곳에 있는 문자를 찾거나 바꿀수 있는 기능을 넣을려고 합니다. 근데 FindDialog, ReplaceDialog 콤포넌트의 기능을 알고 싶군요. 단순히 다이알로그...
한
•
1999.05.27 21:33
지니 께서 말씀하시기를... > > 간단한 메모장을 만들어 보고 있습니다. > RichEdit콘트롤을 사용하여 ...
황하성
•
1999.05.27 20:24
1
COMMENTS
/
0
LIKES
MessageDlg에 버튼 추가는 어떻게?
안치봉
•
1999.05.27 20:51
황하성 께서 말씀하시기를... > > MessageDlg에서 버튼 입력을 받아서 다음 과정으로 넘어가고 싶은데 ...
박회연
1999.05.27 20:02
0
COMMENTS
/
0
LIKES
출력시 문제점
박훈철
•
1999.05.27 18:37
1
COMMENTS
/
0
LIKES
키가 눌리고 있는중에 다른키 입력을 아는법은?
이정욱
•
1999.05.27 20:15
GetASyncKeyState를 사용하시면 됩니다. 생각하신데로 루프를 돌면서 계속 검사를 하고 있는것입니다. 저...
송기원
•
1999.05.27 18:29
1
COMMENTS
/
0
LIKES
Primary Key Duplication Error유무 확인?
한
•
1999.05.27 23:43
송기원 께서 말씀하시기를... > Cached Update를 이용하여 자료를 저장시에 오류가 발생하면 > TQuery의 ...
하명훈
1999.05.27 11:41
0
COMMENTS
/
0
LIKES
QuickReport에 관한 몇가지 질문......
Vincent
•
1999.05.27 08:18
1
COMMENTS
/
0
LIKES
[급구]음력==> 양력 로직 찾습니다.
안치봉
•
1999.05.27 08:39
Vincent 께서 말씀하시기를... > 급하게 음력생일을 양력생일로 변환하는 로직을 찾습니다. > 통합 델파...
Heaven
•
1999.05.27 06:19
1
COMMENTS
/
0
LIKES
스트링그리드에 대한 몇가지 질문...다시 올림.
이정욱
•
1999.05.27 10:46
> 스트링 그리드에 관한것 인데요. > 스트링 그리드에서 특정셀로 포커스를 이동할 수 있는지 궁금합니다....
chbang
•
1999.05.27 06:03
1
COMMENTS
/
0
LIKES
에러좀 봐주세요...
신인재
•
1999.05.27 21:56
음....sql의 구문에러 인듯 합니다. showmessage(query1.sql.lines.text); delphi30으로 oracle db와 con...
조진희
•
1999.05.27 04:26
3
COMMENTS
/
0
LIKES
[급해요]db저장중 에러...
하윤철
•
1999.05.27 05:54
조진희 wrote: > 파락독스 db를 사용하고 있구요.. > 미혼인 경우에는 결혼기념일을 비활성해서 데이터를...
Heaven
•
1999.05.27 05:54
조진희 wrote: > 파락독스 db를 사용하고 있구요.. > 미혼인 경우에는 결혼기념일을 비활성해서 데이터를...
글쎄요.
•
1999.05.27 04:38
조진희 wrote: > 파락독스 db를 사용하고 있구요.. > 미혼인 경우에는 결혼기념일을 비활성해서 데이터를...
송기원
•
1999.05.27 03:41
1
COMMENTS
/
0
LIKES
Project 컴파일Option 설정방법?
이정욱
•
1999.05.27 10:48
델4에서는 Tools메뉴에서 Debugger Options 에 맨 밑에 있는 Integrated Debugging 을 켜주세요. 델3에...
왕초
•
1999.05.27 03:28
1
COMMENTS
/
0
LIKES
cfx32.ocx 등록시 문제
이정욱
•
1999.05.27 10:51
쩝.. 저희 나이렉스의 고객지원 담당자분의 답변이 아니구 이곳의 방문자분께서 해주신 것입니다. 이곳에서...
박훈철
•
1999.05.27 02:47
2
COMMENTS
/
0
LIKES
서로 다른키를 동시에 입력하는 경우
안치봉
•
1999.05.27 07:10
박훈철 께서 말씀하시기를... > 간단하게 게임을 제작하는 경우라고 생각해 봅시다. > > 먼저 움직이는...
안치봉
•
1999.05.27 06:56
박훈철 께서 말씀하시기를... > 간단하게 게임을 제작하는 경우라고 생각해 봅시다. > > 먼저 움직이는...
왕초
•
1999.05.27 01:45
1
COMMENTS
/
0
LIKES
cfx32.ocx 등록시 문제..
한
•
1999.05.27 03:00
왕초 wrote: > Regsvr32 로 cfx32.ocx 를 등록시에 failed가 나옵니다.. > win95문제인지 Regsvr32, cfx3...
박회연
1999.05.27 00:19
0
COMMENTS
/
0
LIKES
QRCompositeReport에 관한 의문점..
윤상원
•
1999.05.26 22:57
2
COMMENTS
/
0
LIKES
MSACCESS insert시, AcctParam0 오류 메시지
한
•
1999.05.27 21:27
윤상원 께서 말씀하시기를... > 안녕하세요? > 처음으로 게시판을 이용하는것 같습니다. > 책한권과 통...
한
•
1999.05.27 01:17
윤상원 wrote: > 안녕하세요? > 처음으로 게시판을 이용하는것 같습니다. > 책한권과 통신에 올라온 Q&A...
chbang
•
1999.05.26 22:09
1
COMMENTS
/
0
LIKES
StringGrid에서 ..
전철호
•
1999.05.27 01:44
chbang wrote: > StringGrid에서 > 현재 선택되어진 cell 이나 row를 > 알수 있는 방법을 알고 싶습니...
박훈철
•
1999.05.26 21:02
1
COMMENTS
/
0
LIKES
서로다른 키를 동시에 입력시
구창민
•
1999.05.27 02:42
박훈철 wrote: > 기능키가 아닌 일반 키를 두가지를 동시에 두를때 > 혹은 두가지 이상을 누를때 그 키를...
이현신
•
1999.05.26 21:00
1
COMMENTS
/
0
LIKES
메일보내기 에서 smtp 서버 없이는?..
전철호
•
1999.05.27 01:41
이현신 wrote: > 델파이에서 보면 smtp 콤포넌트에서 메일서버를 꼭지정해야 > 하더군요.. > 공개메일 ...
july
•
1999.05.26 19:59
1
COMMENTS
/
0
LIKES
날짜계산
redhead
•
1999.05.26 22:29
july wrote: > 이렇게 계속 질문만 하게 되네요.... > > 다름이 아니오라, 2개의 날짜가 있어서 그 사...
지니
1999/05/27 20:57
Views
410
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
>
> 간단한 메모장을 만들어 보고 있습니다.
> RichEdit콘트롤을 사용하여 작성하고 있는데
> 이곳에 있는 문자를 찾거나 바꿀수 있는 기능을 넣을려고
> 합니다.
>
> 근데 FindDialog, ReplaceDialog 콤포넌트의 기능을 알고
> 싶군요. 단순히 다이알로그 박스만 나타내주는 것인지
> 실제로 찾기, 바꾸기 의 기능을 해주는 콤포넌트인지...
>
> 어줍잖은 실력으로 찾기,바꾸기 코딩을 하기보다는
> 활용하는게 현재로서는 좋을것 같아서요.. 답변부탁드립니다.
음냐....
예제 입니다.
procedure TForm1.Button1Click(Sender: TObject);
begin
FindDialog1.Execute;
end;
procedure TForm1.FindDialog1Find(Sender: TObject);
var
FoundAt: LongInt;
StartPos, ToEnd: integer;
SearchType : TSearchTypes;
begin
with RichEdit1 do
begin
SearchType := [];//FindText메서드에 쓰일 옵션
// 대/소문자구별, 단어검색 조검만 줄수 있다.
//대소문자 구별인지 검사
if (frMatchCase in FindDialog1.Options ) then
SearchType := SearchType + [stMatchCase];
// 단어 검색인지 검사
if (frWholeWord in FindDialog1.Options ) then
SearchType := SearchType + [stWholeWord];
//검색순서가 현재 부터 위/아래인지 검사
if (frDown in FindDialog1.Options ) then
begin
StartPos := SelStart;
ToEnd := Length(Text) - StartPos;
end
else
begin
StartPos := 0;
ToEnd := SelStart;
end;
FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, SearchType);
if FoundAt <> -1 then
begin
FindDialog1.CloseDialog; //단어를 발견하면 검색창을 닫는다.
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ReplaceDialog1.Execute;
end;
procedure TForm1.ReplaceDialog1Find(Sender: TObject);
begin
ShowMessage('OnFind');
end;
procedure TForm1.ReplaceDialog1Replace(Sender: TObject);
begin
if frReplaceAll in ReplaceDialog1.Options then
ShowMessage('OnReplaceAll')
else
ShowMessage('OnReplace')
end;
그럼...