C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[27927] Re:SynEdit1.1 에 관한 문의입니다.
민병권 [] 985 읽음    2003-11-19 20:34
질문하신 내용으로 보아 나만의 새로운 Highlighter를 만드실려고 SynHighlighterSample.pas의 소스를 분석 하고 계신것 같습니다.

하지만, SynEdit에서는 Highlighter를 만드는 쉬운 방법이 따로 있습니다.
물론, 문정님처럼 SynHighlighterSample.pas를 분석하여 사용해도 되겠지만 너무 힘들지 않을까 합니다.

==============================================================
새로운 Highlighter를 만드는 방법은 다음과 같습니다.
==============================================================
1. 먼저, SynEdit1.1\SynGen 폴더에 있는 *.pas소스를 컴파일 하여 실행파일을 하나 만듭니다.
   만약, 델파이가 설치되어 있으면 'SynGen.dpr'을 사용하면 됩니다.
   아마, 'SynGen.exe'라는 파일명으로 만들어 질겁니다.

2. 'SynHighlighterSample.msg' 파일을 수정 또는 새로 만듭니다.
   이 파일은 일반적인 텍스트 파일로써, Demos\HighlighterDemo 폴더안에 보시면 있습니다.

   이 파일이 실제적으로 Highlighter를 만들기 위한 중요한 파일입니다.
   이 파일내용은 조금 공부 하셔야 되는데, 같은 폴더내에 'Highlighters-HowTo.rtf'로 제공됩니다.

3. 'SynHighlighterSample.msg' 파일을 'SynHighlighterSample.pas'로 변환합니다.
   위의 1번에서 만들었던 'SynGen.exe'를 사용하여 변환을 합니다.
   사용방법은 간단합니다. 'SynHighlighterSample.msg'파일을 선택하고 메뉴에서 'Start'를 실행합니다.
   그러면, 'SynHighlighterSample.pas'이 만들어 지는데, 이 파일을 나중에 만드시는 프로그램의 프로젝트
   에 넣어 주시면 됩니다.

4. SynEditor->Highlighter = TSynSampleSyn(NULL);
   이제, 사용해 봅니다.


* 첨부파일로 C++ HighLighter를 같이 올리겠습니다.
  참고하십시요.


문정 님이 쓰신 글 :
: SynEdit에서 Highlighter 에 관한 질문입니다.
: SynEdit1.1의 Demos/HighlighterDemo 예제를 빌더화 하고있는 중입니다.
:
: SynHighlighterSample.pas 의 내부는 다음과 같습니다. (일부 생략)
:
: type
:   TSynSampleSyn = class(TSynCustomHighlighter)
:   private
:     fCommentAttri: TSynHighlighterAttributes;
:   public
:     constructor Create(AOwner: TComponent); override;
:
: :
: :
:
: constructor TSynSampleSyn.Create(AOwner: TComponent);
: begin
:   inherited Create(AOwner);
:   fCommentAttri := TSynHighLighterAttributes.Create(SYNS_AttrComment);
:
:
: 이를 C++ 화 하려고 다음과 같이 작성하였읍니다.
:
: class TSynSampleSyn : public TSynCustomHighlighter
: {
:   private:
:     TSynHighlighterAttributes* fCommentAttri;
:   public:
:     __fastcall Create(TComponent AOwner);
: }
:
: __fastcall TSynSampleSyn::Create(TComponent AOwner)
:   {
:   fCommentAttri = new TSynHighlighterAttributes;
:   fCommentAttri->Create(SYNS_AttrComment);
:
: 여러가지로 변환해 보았으나 아무래도 델파이에서 C++로의 변환을 위한 의미해석을 잘못한것 같습니다.
: 어떻게 고쳐야 할지 도움을 부탁드립니다.
:
:

+ -

관련 글 리스트
27919 SynEdit1.1 에 관한 문의입니다. 문정 740 2003/11/19
34004     Re:SynEdit1.1 에 관한 문의입니다. 홍환민.행복 735 2003/11/19
27927     Re:SynEdit1.1 에 관한 문의입니다. 민병권 985 2003/11/19
27928         Re:Re:SynEdit1.1 에 관한 문의입니다. 문정 772 2003/11/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.