⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ide.cpp

📁 嵌入式IDE
💻 CPP
📖 第 1 页 / 共 3 页
字号:

    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 + -