|
먼저 감사드립니다. 그렇지 않아도 SynGen 용 msg 파일을 보고 있던 참이었읍니다.
보내주신 예제 문법파일을 잘 읽어보고 열심히 해본다음에 혹 질문이 있으면 다시 올리겠읍니다.
대단히 감사합니다.
민병권 님이 쓰신 글 :
: 질문하신 내용으로 보아 나만의 새로운 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++로의 변환을 위한 의미해석을 잘못한것 같습니다.
: : 어떻게 고쳐야 할지 도움을 부탁드립니다.
: :
: :
|