当前位置:天才代写 > tutorial > C语言/C++ 教程 > 玩转BCB的IDE,体验ToolsAPI

玩转BCB的IDE,体验ToolsAPI

2017-11-05 08:00 星期日 所属: C语言/C++ 教程 浏览:771

副标题#e#

大大都BCB措施员也许一辈子都不消体贴Toolsapi,但假如象我一样无聊的话,

不妨玩玩和接头一下:

看看下面的措施,来把IDE变个样:

—>BCB5。0

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
USERES("nodebug.res");
USEPACKAGE("vcl50.bpi");
//---------------------------------------------------------------------------
#include <toolsapi.hpp>
#include <inifiles.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
// Package source.
//---------------------------------------------------------------------------
namespace Nodebug // Here the namespace should be same with this file name.
{
bool NeedLocalize = true;
bool NeedWriteToIni = false;
TIniFile *ini, *chsini;
AnsiString Section, Ident, Value;
//===[ Do something on MenuItems. ]======================================
void __fastcall DoMenuItem(TMenuItem* MenuItem)
{
//Display all MenuItems.
if(MenuItem->Visible==false) MenuItem->Visible = true;
if ( NeedWriteToIni && !MenuItem->Name.IsEmpty())
{
Ident = MenuItem->Name;
Value = MenuItem->Caption;
ini->WriteString ( Section, Ident, Value );
}
}
//===[ Do something on MenuItems. ]======================================
//===[ Enumerate all MenuItem's SubItems. ]==============================
void __fastcall EnumerateMenuItem(TMenuItem* MenuItem)
{
DoMenuItem(MenuItem);
for ( int i=0; i<MenuItem->Count; i++ )
{
EnumerateMenuItem(MenuItem->Items[i]);
}
}
//===[ Enumerate all MenuItem's SubItems. ]==============================
void __fastcall LocalizeAppMenu()
{
_di_INTAServices IDE;
HRESULT hr = BorlandIDEServices->QueryInterface(__uuidof(INTAServices), (void **) &IDE);
if (SUCCEEDED(hr))
{
//----------[AppBuilder macro start]--------------------------------------
#ifndef AppBuilder
#define AppBuilder IDE->MainMenu->Owner
#endif
//----------[AppBuilder macro end ]--------------------------------------
TStringList* SectionList = new TStringList;
TStringList* IdentList = new TStringList;
AnsiString Value , Default("NULL");
try
{
chsini->ReadSections(SectionList);
for (int i = 0; i < SectionList->Count; i++)
{
chsini->ReadSection( SectionList->Strings[i], IdentList);
for (int x = 0; x < IdentList->Count; x++)
{
Value = chsini->ReadString( SectionList->Strings[i],
IdentList->Strings[x],
"NULL");
if( Default != Value )
{
TMenuItem* MI = dynamic_cast<TMenuItem*>
(AppBuilder->FindComponent(IdentList->Strings[x]));
if(MI != NULL) MI->Caption = Value;
}
}
}
}
#undef AppBuilder
__finally
{
delete IdentList;
delete SectionList;
}
}
}
//===[ BPL's 'Main' function or Entry Function. ]========================
void __fastcall PACKAGE Register()
{
ini = new TIniFile(ChangeFileExt( Application->ExeName, ".INI" ));
chsini = new TIniFile(ChangeFileExt( Application->ExeName, "CHS.INI" ));
if( NeedLocalize ) LocalizeAppMenu();
_di_INTAServices IDE;
HRESULT hr = BorlandIDEServices->QueryInterface(__uuidof(INTAServices), (void **) &IDE);
if (SUCCEEDED(hr))
{
//----------[AppBuilder macro start]--------------------------------------
#ifndef AppBuilder
#define AppBuilder IDE->MainMenu->Owner
#endif
//----------[AppBuilder macro end ]--------------------------------------
for ( int i = 0; i<AppBuilder->ComponentCount; i++ ) // ComponentCount = 409
{
if ( AppBuilder->Components[i]->ClassNameIs("TMainMenu") ) // MainMenu1
{
//----------[AppMainMenu macro start]--------------------------------------
#ifndef AppMainMenu
#define AppMainMenu dynamic_cast<TMainMenu*>( AppBuilder->Components[i])
#endif
//----------[AppMainMenu macro end ]--------------------------------------
for ( int x = 0; x < AppMainMenu->Items->Count; x++ ) //count 11
{
if(NeedWriteToIni) Section = AppMainMenu->Items->Items[x]->Name;
EnumerateMenuItem(AppMainMenu->Items->Items[x]);
}//for finished.
#undef AppMainMenu
}//if finished.
}//for finished
#undef AppBuilder
}
else ShowMessage("Error:I Can't Access IDE.\nYou'd better unload this module.");
delete ini;
delete chsini;
}
//===[ BPL's 'Main' function or Entry Function. ]========================
}//namespace finished.
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}

//—————————————————————————


#p#副标题#e#

我不是要弄个创天版BCB!!

这里是我写的中文化文件。

放在\bin下面,叫成BCBCHS.ini

[FileMenu]

FileMenu=文件(&F)

FileNewItem=新建(&N)…

FileNewApplicationItem=新建措施

FileNewFormItem=新建窗体(&F)

FileNewUnitItem=新建单位(&U)

FileNewFrameItem=新建框架(&m)

FileOpenSeparater=-

FileOpenItem=打开(&O)…

FileOpenProjectItem=打开工程(&j)…

FileClosedFilesItem=再次打开(&R)

FileSaveSeparater=-

FileSaveItem=生存(&S)

FileSaveAsItem=另存为(&A)…

FileSaveProjectAs=工程另存为(&e)…

FileSaveAllItem=全部生存(&v)

FileCloseItem=封锁(&C)

FileCloseAllItem=全部封锁(&l)

FileMenuSeparator=-

FileUseUnitItem=包括单位头文件(&I)…

FilePrintItem=打印(&P)…

FileExitItem=退出(&x)

[EditMenu]

EditMenu=编辑(&E)

EditUndoItem=除掉(&U)

EditRedoItem=规复(&R)

EditCutItem=剪切(&t)

EditCopyItem=复制(&C)

EditPasteItem=粘贴(&P)

EditDeleteItem=删除(&D)

EditSelectAll=全部删除(&l)

EditAlignGridItem=按网格对齐(&G)

EditFrontItem=控件提前(&F)

EditBackItem=控件置后(&B)

EditAlignItem=控件对齐(&A)…

EditSizeItem=控件巨细(&S…

EditScaleItem=控件比例(&e)…

EditTabOrderItem=Tab序次(&O)…

EditCreationOrderItem= 控件建设序次(&n)…

EditFlipChildrenItem=镜像子控件(&h)

#p#副标题#e#

EditFlipChildrenAllItem=全部(&A)

EditFlipChildrenSelectedItem=选定的(&S)

EditLockControlsItem=锁定控件(&k)

CORBAEditSeparator=-

[SearchMenu]

SearchMenu=搜索(&S)

SearchFindItem=查找(&F)…

SearchFileFindItem=多文件查找(&d)…

SearchReplaceItem=替换(&R)…

SearchAgainItem=从头搜索(&S)

SearchIncrementalItem=增量搜索(&I)

SearchGoToItem=跳转至指定行号(&G)…

SearchGotoAddressItem=跳转至指定地点(&e)

[ViewsMenu]

ViewsMenu=查察(&V)

ViewPrjMgrItem=工程打点器(&P)

TransMgrMenu=翻译打点器(&M)

ViewObjInspItem=工具查察器(&O)

ViewToDoListItem=To-Do列表(&L)

ViewAlignItem=对齐面板(&A)

CodeExplorer=类欣赏器(&x)

ViewCompListItem=组件列表(&C)

ViewWindowListItem=窗口列表(&W)…

ViewDebugItem=调试窗口(&D)

ViewBreakpointsItem=断点(&B)

ViewCallStackItem=仓库挪用(&S)

ViewWatchesItem=&Watches

ViewLocalVariablesItem=局部变量(&L)

ViewThreadsItem=线程(&T)

ViewModulesItem=模块(&M)

ViewEventLogItem=事件记录(&E)

ViewCodeGuardLogItem=CodeGuard记录

ViewCPUItem=&CPU

ViewFPUItem=&FPU

AltViewCallStackItem=AltViewCallStackItem

AltViewCPUItem=AltViewCPUItem

ViewDesktopsMenu=桌面(&k)

SaveDesktop1=生存桌面(&S)…

DeleteDesktop=删除(&t)…

SetDebugDesktop1=配置调试桌面(&D)

ViewToggleFormItem=切换窗体/单位(&g)

ViewUnitItem=单位(&U)…

ViewFormItem=窗体(&F)…

ViewTypeLibraryItem=范例库(&T)

ViewNewEditorItem=新建编辑窗口(&E)

#p#副标题#e#

ViewToolbarsItem=东西栏(&r)

ViewSwapSourceFormItem=按文字查察(&V)

ViewNextWindowItem=下一个窗口(埋没项)

[ProjectMenu]

ProjectMenu=工程(&P)

ProjectAddItem=添加到工程(&A)…

ProjectRemoveItem=从工程移除(&R)…

ProjectImportTypeLibraryItem=引入范例库(&L)…

ProjectAddRepositoryItem=添加到客栈(&t)…

ViewPrjSourceItem=查察源文件(&V)

InternationalMenu=语言(&g)

AddLangMenu=添加(&A)…

RemoveLangMenu=移除(&R)…

SetActiveLangMenu=配置激活项(&S)… (<无>)

UpdateResDLLMenu=进级资源(&U)DLLs

ProjectViewMakefileItem=编辑编译选项源文件(&p)

ProjectExportMakefileItem=输出Makefile…

N2=-

ProjectAddNewProjectItem=添加新工程(&N)…

ProjectAddExistingProjectItem=添加已有工程(&x)…

ProjectCompileSeparator=-

ProjectCompileUnitItem=编译单位(&C)

ProjectCompileItem=&Make

ProjectBuildItem=&Build

ProjectInformationItem=&工程信息

N1=-

ProjectCompileAllItem=Make全部工程(&k)

ProjectBuildAllItem=Build全部工程(&u)

ProjectSeparator=-

ProjectDepOptItem=Web宣布选项(&W)…

ProjectDeployItem=Web宣布(&D)

ProjectSeparator2=-

ProjectOptionsItem=选项(&O)…

[RunMenu]

RunMenu=运行(&R)

RunRunItem=运行(&R)

#p#副标题#e#

RunAttachtoProcessItem=附加至历程(&o)…

RunParametersItem=运行参数(&P)…

RunRegisterComItem=注册ActiveX处事器(&A)

RunUnregisterComItem=注销Activex处事器(&X)

RunParametersSeparator=-

RunStepOverItem=单步Step Over(&S)

RunTraceIntoItem=单步Trace Into(&T)

RunTraceToSourceItem=跟踪至下一行源码(&N)

RunGotoCursorItem=运行至光标处(&C)

RunUntilReturnItem=运行至挪用返回(&U)

RunShowCSIPItem=显示执行点(&h)

RunPauseItem=措施暂停(&g)

RunResetItem=措施重置(&e)

RunInspectSeparator=-

RunInspectItem=放哨(&I)…

RunEvalModItem=求值/修改(&v)…

RunAddWatchItem=添加Watch(&W)…

RunAddBreakItem=添加断点(&B)

RunAddSourceBreakpointItem=源码断点(&S)…

RunAddAddressBreakpointItem=地点断点(&A)…

RunAddDataBreakpointItem=数据断点(&D)…

RunAddModuleLoadBreakpointItem=模块加载断点(&M)…

[ComponentMenu]

ComponentMenu=组件(&C)

ComponentNewItem=新建组件(&N)…

ComponentAddtoPackage=安装组件(&I)…

ComponentImportAXCItem=引入Activex控件(&X)…

ComponentInstallCompositeItem=建设组件模板(&T)…

ComponentInstallPackagesItem=安装措施包(&P)…

ComponentPaletteItem=配置面板(&C)…

[DatabaseMenu]

DatabaseMenu=数据库(&D)

Borland_DbExplorerMenu=欣赏(&E)

Borland_SQLMonitorMenu=SQL监督器(&S)

Borland_FormWizardMenu=窗体领导(&F)…

#p#副标题#e#

[ToolsMenu]

ToolsMenu=东西(&T)

ToolsOptionsItem=情况选项(&O)…

ToolsEditorOptionsItem=编辑器选项(&E)…

ToolsDebuggerOptionsItem=调试器选项(&D)…

ITEOptionsMenu=翻译东西选项(&n)…

ToolsGalleryItem=客栈(&R)…

RepositoryMenu=翻译客栈(&a)…

CORBAToolsSeparator1=-

CORBAToolsSeparator2=-

ToolsToolsItem=配置自界说东西(&T)…

[HelpMenu]

HelpMenu=辅佐(&H)

HelpContentsItem=C++Builder辅佐

HelpCBuilderToolsItem=C++Builder东西(&T)

HelpWinSDKItem=Windows SDK(&W)

HelpInprisePage=Borland主页(&B)

HelpCommunityPage=Borland论坛主页

HelpCBuilderPage=C++Builder主页(&P)

HelpDevSupportPage=C++Builder开拓人员支持(&S)

DirectItem=C++Builder直通车(&r)…

HelpProgGuideSeparater=-

HelpCustomizeItem=自界说(&t)…

HelpAboutSeparator=-

HelpAboutItem=关于(&A)…

问题就是数据库菜单没有结果

 

    关键字:

天才代写-代写联系方式