Delphi IDE Theme Editor
을 Rad Studio IDE (이 도구의 현재 버전이 외부 응용 프로그램으로 실행 됨)에 통합하기위한 플러그인을 작성하고 있습니다. 지금까지 모든 것이 올바르게 작동합니다 (아래 이미지 참조) t는 당신이 어떤 요소를 사용자 정의 할 수 있습니다 (편집자 옵션 -> 색상) 구문 강조 색상을 변경하기 위해 표준 옵션으로,OTA (Open Tools API)를 사용하여 수정 된 구문 하이라이트 색상을 Delphi IDE에서 새로 고침하는 방법을 알려주십시오.
가 설명해 드리죠 델파이 IDE에서 선택된 구문 강조 색상을 갱신하는 방법을 알아낼 새로운 전경색과 배경색을 지정한 다음 을 누르면됩니다. OK. 단추 IDE가 변경 사항을 적용하면 IDE 편집기 창이 새 설정으로 업데이트됩니다.
현재 새 값을 수정하고 저장할 수 있지만 델파이 IDE에 새로운 구성을 적용하도록 지시 할 수는 없으며 변경 사항은 IDE가 다시 시작될 때만 표시됩니다.
ToolsAPI 장치를 검색 한 결과 IOTAEditOptions
, IOTAHighlighter
및 IOTAHighlightServices
인터페이스가 발견되었지만 수정 된 설정을 새로 고치는 (다시로드하는) 옵션이없는 것 같습니다.
또한 나는 (tdump를 사용하여) unmangle을 시도하고 coreide1XX.bpl 파일의 기능을 직접 호출했지만이 역시 효과가 없었습니다.
How I can instruct to the Delphi IDE refresh the modified syntax highlight colors using OTA (Open Tools API)?
00420B94 17411 1F39 Editcolorpage::TEditorColor::
00422188 17400 1F3A __fastcall Editcolorpage::TEditorColor::ColorClick(System::TObject *)
0042174C 17407 1F3B __fastcall Editcolorpage::TEditorColor::ColorSpeedSettingClick(System::TObject *)
004224BC 17396 1F3C __fastcall Editcolorpage::TEditorColor::DefaultClick(System::TObject *)
00422414 17397 1F3D __fastcall Editcolorpage::TEditorColor::EditorColorBroadcast(System::TObject *, Winapi::Messages::TMessage&)
00421584 17409 1F3E __fastcall Editcolorpage::TEditorColor::EditorColorCreate(System::TObject *)
00421730 17408 1F3F __fastcall Editcolorpage::TEditorColor::EditorColorDestroy(System::TObject *)
004217B0 17406 1F40 __fastcall Editcolorpage::TEditorColor::ElementListClick(System::TObject *)
004222E8 17399 1F41 __fastcall Editcolorpage::TEditorColor::FontClick(System::TObject *)
004225DC 17395 1F42 __fastcall Editcolorpage::TEditorColor::HelpClick(System::TObject *)
00421AE8 17404 1F43 __fastcall Editcolorpage::TEditorColor::InitLineFlags(const System::DelphiInterface<Toolsapi::IOTAHighlighterPreview>)
004219B8 17405 1F44 __fastcall Editcolorpage::TEditorColor::InitSamplePane()
00421BC8 17403 1F45 __fastcall Editcolorpage::TEditorColor::InitSyntaxEditView(const System::DelphiInterface<Toolsapi::IOTAHighlighterPreview>)
0042262C 17393 1F46 __fastcall Editcolorpage::TEditorColor::LoadHighlightPreviews()
004225F4 17394 1F47 __fastcall Editcolorpage::TEditorColor::MarkDirty()
004220E4 17401 1F48 __fastcall Editcolorpage::TEditorColor::SampleClick(System::TObject *)
00422080 17402 1F49 __fastcall Editcolorpage::TEditorColor::SetColorSpeedSetting(Vedopts::TColorSpeedSetting)
0042238C 17398 1F4A __fastcall Editcolorpage::TEditorColor::UpdateSamplePane()
00422814 17392 1F4B __fastcall Editcolorpage::TEditorColor::tbsetPreviewsChange(System::TObject *, int, bool&)
004AA8D4 17390 1F4C __fastcall Editcolorpage::initialization()
00423C38 17413 1F4D __fastcall Editdisplaypage::Finalization()
당신이 더 많은 정보가 필요한 경우 또는 질문이 명확하지 않은 경우 알려줘.
아주 길지만 'IOTAEditView'라고 부를 수도 있습니다.모든 활성 모듈 편집기에 대해 '페인트? – NGLN
IDE가 @Internization에 대한 색상 설정 만로드하기 때문에 @NGLN이 작동하지 않을 것이라고 생각합니다. 또한 OTAPI에 이러한 속성을 다시 초기화 할 수있는 인터페이스가 있다고 생각하지 않습니다. – LaKraven
수정 사항 : 환경 옵션 대화 상자를 닫을 때 해당 설정이 다시 초기화 된 것처럼 보입니다. 속임수는 플러그인을 가지고 환경 옵션 대화 상자를 불러 와서 사용자가 수동으로 닫도록하는 것일 수 있습니다. 대단히 우아하지는 않지만 효과적이어야합니다. – LaKraven