📄 ide.cpp
字号:
IniFile->WriteBool("Embedded IDE Setting","WatchWindow Show",WatchWindowForm->IsShow);
IniFile->WriteBool("Embedded IDE Setting","WatchWindow Dock",!WatchWindowForm->Floating);
IniFile->WriteInteger("Embedded IDE Setting","WatchWindow Width",WatchWindowForm->Width);
IniFile->WriteInteger("Embedded IDE Setting","WatchWindow Height",WatchWindowForm->Height);
IniFile->WriteInteger("Embedded IDE Setting","WatchWindow Top",WatchWindowForm->Top);
IniFile->WriteInteger("Embedded IDE Setting","WatchWindow Left",WatchWindowForm->Left);
APanel = (static_cast<TPanel*>(WatchWindowForm->HostDockSite));
PanelID = 0;
if(APanel == IdeForm->LeftDockPanel)
PanelID = 1;
else if(APanel == IdeForm->BottomDockPanel)
PanelID = 2;
else if(APanel == IdeForm->RightDockPanel)
PanelID = 3;
IniFile->WriteInteger("Embedded IDE Setting","WatchWindow DockID",PanelID);
IniFile->WriteBool("Embedded IDE Setting","FileBrowser Show",FileBrowserForm->IsShow);
IniFile->WriteBool("Embedded IDE Setting","FileBrowser Dock",!FileBrowserForm->Floating);
IniFile->WriteInteger("Embedded IDE Setting","FileBrowser Width",FileBrowserForm->Width);
IniFile->WriteInteger("Embedded IDE Setting","FileBrowser Height",FileBrowserForm->Height);
IniFile->WriteInteger("Embedded IDE Setting","FileBrowser Top",FileBrowserForm->Top);
IniFile->WriteInteger("Embedded IDE Setting","FileBrowser Left",FileBrowserForm->Left);
APanel = (static_cast<TPanel*>(FileBrowserForm->HostDockSite));
PanelID = 0;
if(APanel == IdeForm->LeftDockPanel)
PanelID = 1;
else if(APanel == IdeForm->BottomDockPanel)
PanelID = 2;
else if(APanel == IdeForm->RightDockPanel)
PanelID = 3;
IniFile->WriteInteger("Embedded IDE Setting","FileBrowser DockID",PanelID);
delete IniFile;
}
//---------------------------------------------------------------------------
void __fastcall TIdeForm::ReadIDEConfig(void)
{
TIniFile *IniFile;
int PanelID;
IniFile = new TIniFile(ChangeFileExt(Application->ExeName,".ini"));
//Embedded IDE Setting
IdeForm->Width = IniFile->ReadInteger("Embedded IDE Setting","IDE Form Width",650);
IdeForm->Height = IniFile->ReadInteger("Embedded IDE Setting","IDE Form Height",450);
IdeForm->Top = IniFile->ReadInteger("Embedded IDE Setting","IDE Form Top",150);
IdeForm->Left = IniFile->ReadInteger("Embedded IDE Setting","IDE Form Left",180);
IdeForm->WindowState = (TWindowState)IniFile->ReadInteger("Embedded IDE Setting","IDE Form State",2);
IdeForm->FormStyle = (TFormStyle)IniFile->ReadInteger("Embedded IDE Setting","IDE Form Style",0);
StatusBar->Visible = IniFile->ReadBool("Embedded IDE Setting","StatusBar Show",true);
StatusBarShow->Checked = StatusBar->Visible;
LeftDockPanelWidthHistory = IniFile->ReadInteger("Embedded IDE Setting","LeftDockPanelWidthHistory",170);
BottomDockPanelHeightHistory = IniFile->ReadInteger("Embedded IDE Setting","BottomDockPanelHeightHistory",100);
RightDockPanelWidthHistory = IniFile->ReadInteger("Embedded IDE Setting","RightDockPanelWidthHistory",170);
ProjectWindowForm->Width = IniFile->ReadInteger("Embedded IDE Setting","ProjectWindow Width",170);
ProjectWindowForm->Height = IniFile->ReadInteger("Embedded IDE Setting","ProjectWindow Height",532);
ProjectWindowForm->Top = IniFile->ReadInteger("Embedded IDE Setting","ProjectWindow Top",12);
ProjectWindowForm->Left = IniFile->ReadInteger("Embedded IDE Setting","ProjectWindow Left",0);
if(IniFile->ReadBool("Embedded IDE Setting","ProjectWindow Show",true))
{
if(IniFile->ReadBool("Embedded IDE Setting","ProjectWindow Dock",true))
{
PanelID = IniFile->ReadInteger("Embedded IDE Setting","ProjectWindow DockID",1);
if(PanelID == 1)
ProjectWindowForm->ManualDock(LeftDockPanel,NULL,alNone);
else if(PanelID == 2)
ProjectWindowForm->ManualDock(BottomDockPanel,NULL,alNone);
else if(PanelID == 3)
ProjectWindowForm->ManualDock(RightDockPanel,NULL,alNone);
}
ProjectWindowShow(true);
ProjectWindow->Checked = true;
}
else
ProjectWindow->Checked = false;
OutputWindowForm->Width = IniFile->ReadInteger("Embedded IDE Setting","OutputWindow Width",360);
OutputWindowForm->Height = IniFile->ReadInteger("Embedded IDE Setting","OutputWindow Height",100);
OutputWindowForm->Top = IniFile->ReadInteger("Embedded IDE Setting","OutputWindow Top",0);
OutputWindowForm->Left = IniFile->ReadInteger("Embedded IDE Setting","OutputWindow Left",12);
if(IniFile->ReadBool("Embedded IDE Setting","OutputWindow Show",true))
{
if(IniFile->ReadBool("Embedded IDE Setting","OutputWindow Dock",true))
{
PanelID = IniFile->ReadInteger("Embedded IDE Setting","OutputWindow DockID",2);
if(PanelID == 1)
OutputWindowForm->ManualDock(LeftDockPanel,NULL,alNone);
else if(PanelID == 2)
OutputWindowForm->ManualDock(BottomDockPanel,NULL,alNone);
else if(PanelID == 3)
OutputWindowForm->ManualDock(RightDockPanel,NULL,alNone);
}
OutputWindowShow(true);
OutputWindow->Checked = true;
}
else
OutputWindow->Checked = false;
WatchWindowForm->Width = IniFile->ReadInteger("Embedded IDE Setting","WatchWindow Width",360);
WatchWindowForm->Height = IniFile->ReadInteger("Embedded IDE Setting","WatchWindow Height",100);
WatchWindowForm->Top = IniFile->ReadInteger("Embedded IDE Setting","WatchWindow Top",0);
WatchWindowForm->Left = IniFile->ReadInteger("Embedded IDE Setting","WatchWindow Left",392);
if(IniFile->ReadBool("Embedded IDE Setting","WatchWindow Show",true))
{
if(IniFile->ReadBool("Embedded IDE Setting","WatchWindow Dock",true))
{
PanelID = IniFile->ReadInteger("Embedded IDE Setting","WatchWindow DockID",2);
if(PanelID == 1)
WatchWindowForm->ManualDock(LeftDockPanel,NULL,alNone);
else if(PanelID == 2)
WatchWindowForm->ManualDock(BottomDockPanel,NULL,alNone);
else if(PanelID == 3)
WatchWindowForm->ManualDock(RightDockPanel,NULL,alNone);
}
WatchWindowShow(true);
WatchWindow->Checked = true;
}
else
WatchWindow->Checked = false;
FileBrowserForm->Width = IniFile->ReadInteger("Embedded IDE Setting","FileBrowser Width",170);
FileBrowserForm->Height = IniFile->ReadInteger("Embedded IDE Setting","FileBrowser Height",532);
FileBrowserForm->Top = IniFile->ReadInteger("Embedded IDE Setting","FileBrowser Top",12);
FileBrowserForm->Left = IniFile->ReadInteger("Embedded IDE Setting","FileBrowser Left",0);
if(IniFile->ReadBool("Embedded IDE Setting","FileBrowser Show",true))
{
if(IniFile->ReadBool("Embedded IDE Setting","FileBrowser Dock",true))
{
PanelID = IniFile->ReadInteger("Embedded IDE Setting","FileBrowser DockID",3);
if(PanelID == 1)
FileBrowserForm->ManualDock(LeftDockPanel,NULL,alNone);
else if(PanelID == 2)
FileBrowserForm->ManualDock(BottomDockPanel,NULL,alNone);
else if(PanelID == 3)
FileBrowserForm->ManualDock(RightDockPanel,NULL,alNone);
}
FileBrowserWindowShow(true);
FileBrowserWindow->Checked = true;
}
else
FileBrowserWindow->Checked = false;
delete IniFile;
}
//---------------------------------------------------------------------------
void __fastcall TIdeForm::FormShow(TObject *Sender)
{
ReadIDEConfig();
}
//---------------------------------------------------------------------------
bool __fastcall TIdeForm::IdeOpenFile(const AnsiString AFileName)
{
if( FileExists(AFileName) )
{
EDITORTABSHEET *EditorTabSheet = new EDITORTABSHEET;
EditorTabSheet->TabSheet = new TTabSheet(EditorPageControl);
EditorTabSheet->TabSheet->PageControl = EditorPageControl;
EditorTabSheet->SourceEditorForm = new TSourceEditorForm(EditorTabSheet->TabSheet);
EditorTabSheet->SourceEditorForm->Visible = false;
EditorTabSheet->SourceEditorForm->Parent = EditorTabSheet->TabSheet;
EditorTabSheet->SourceEditorForm->BorderStyle = bsNone;
EditorTabSheet->SourceEditorForm->Align = alClient;
EditorTabSheet->SourceEditorForm->FormStyle = fsNormal;
EditorTabSheet->SourceEditorForm->Visible = true;
EditorTabSheet->SourceEditorForm->Show();
EditorPageControl->ActivePage = EditorTabSheet->TabSheet;
char PathBuffer[MAX_PATH];
char *FilePart;
AnsiString FileExt;
GetFullPathName(AFileName.c_str(),MAX_PATH,PathBuffer,&FilePart);
FileExt = LowerCase(ExtractFileExt(FilePart));
EditorTabSheet->SourceEditorForm->FileName = &PathBuffer[0];
IdeForm->Caption = TITLECAPTION + (String)" - [" + EditorTabSheet->SourceEditorForm->FileName + "]";
EditorTabSheet->SourceEditorForm->SynMemo->Lines->LoadFromFile(EditorTabSheet->SourceEditorForm->FileName);
EditorTabSheet->SourceEditorForm->Caption = FilePart;
EditorTabSheet->TabSheet->Caption = FilePart;
EditorTabSheet->TabSheet->Hint = EditorTabSheet->SourceEditorForm->FileName;
EditorTabSheet->TabSheet->ShowHint = false;
EditorList->Add(EditorTabSheet);
if( (strcmp(FileExt.c_str(),".c") == 0) || (strcmp(FileExt.c_str(),".h") == 0) ||
(strcmp(FileExt.c_str(),".cpp") == 0) || (strcmp(FileExt.c_str(),".hpp") == 0) )
{
EditorTabSheet->SourceEditorForm->SynMemo->Highlighter = IdeForm->SynCppSyn;
}
else if( (strcmp(FileExt.c_str(),".html") == 0) || (strcmp(FileExt.c_str(),".htm") == 0) )
{
EditorTabSheet->SourceEditorForm->SynMemo->Highlighter = IdeForm->SynHTMLSyn;
}
else if( (strcmp(FileExt.c_str(),".ini") == 0) )
{
EditorTabSheet->SourceEditorForm->SynMemo->Highlighter = IdeForm->SynIniSyn;
}
UpdataComboBoxOpenedFile();
delete EditorTabSheet;
return true;
}
return false;
}
void __fastcall TIdeForm::SpeedButton16Click(TObject *Sender)
{
IdeOpenFile("c:\\abc.c");
IdeOpenFile("IDE.cpp");
}
//---------------------------------------------------------------------------
void __fastcall TIdeForm::UpdataComboBoxOpenedFile(void)
{
ComboBoxOpenedFile->Clear();
for(int i = 0; i < EditorPageControl->PageCount; i++)
ComboBoxOpenedFile->Items->AddObject(ExtractFileName(EditorPageControl->Pages[i]->Hint),EditorPageControl->Pages[i]);
ComboBoxOpenedFile->ItemIndex = EditorPageControl->ActivePageIndex;
}
//---------------------------------------------------------------------------
void __fastcall TIdeForm::ComboBoxOpenedFileChange(TObject *Sender)
{
TComboBox *pCB = dynamic_cast<TComboBox *>(Sender);
if(pCB)
EditorPageControl->ActivePage = (TTabSheet *)(pCB->Items->Objects[pCB->ItemIndex]);
}
//---------------------------------------------------------------------------
void __fastcall TIdeForm::EditorPageControlChange(TObject *Sender)
{
IdeForm->Caption = TITLECAPTION + (String)" - [" + EditorPageControl->ActivePage->Hint + "]";
ComboBoxOpenedFile->ItemIndex = EditorPageControl->ActivePageIndex;
}
//---------------------------------------------------------------------------
void __fastcall TIdeForm::CloseTabSheetClick(TObject *Sender)
{
EditorPageControl->ActivePage->PageControl = NULL;
UpdataComboBoxOpenedFile();
}
//---------------------------------------------------------------------------
void __fastcall TIdeForm::SpeedButton11Click(TObject *Sender)
{
TButton *but = new TButton(this);
but->Caption = "test";
EditorPageControl->ActivePage->InsertControl(but);
//Caption = EditorPageControl->ActivePage->HostDockSite
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -