C++ Builder

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

---------------------------------------------------------------------------

1. C++ Builder 网上资源

    C++ Builder 研究
    http://www.ccrun.com/

    C++ Builder 程序员
    http://mybcb.diy.myrice.com/

    电脑学习 C++ Builder 版块
    http://www.itcomputer.com.cn/Programs/C/CB/

    c++ Builder 快捷键大全:
    http://www.itcomputer.com.cn/Programs/C/CB/200512/11211.html

    C++ Builder IDE 使用技巧:
    http://www.itcomputer.com.cn/Programs/C/CB/200512/11199.html

---------------------------------------------------------------------------

2. C++ Builder 里的快捷键

    这里只是一个摘要式的说明,摘出了我认为比较有用也比较常用的,详情请参考:
    http://www.itcomputer.com.cn/Programs/C/CB/200512/11211.html
    说明:其中的区块操作快捷键要在选定某块之后才能起作用。

    名称            作用                备注
    系统:
    F3              查找下一个
    F5              设置/取消断点
    F7              跟踪(进入子程序)
    F8              单步(不进入子程序)
    F9              运行工程,包括了编译
    F11             切换到对象查看器
    F12             切换设计窗体和代码窗口  很有用,特别是在窗口互相覆盖的时候
    Ctrl+F2         结束调试或运行
    Ctrl+F5         设置Watch变量
    Ctrl+F9         编译工程
    Alt+F9          编译单元

    代码自动完成类:
    Ctrl+J          代码模板            很有用,尤其是对代码规范而言
    Ctrl+Space      代码补全            很有用,可以省很多敲键盘和查错的时间
        这个因为跟 Windows 默认的中英文输入法切换快捷键冲突,所以需要作如下设置:
        1) 右键点击任务栏上的输入法图标,选择“设置”;
        2) 在跳出的窗口中点击“键设置”按钮;
        3) 在跳出的窗口中选中“中文(简体)输入法 - 输入法/非输入法切换”,勾选“启用按键顺序”,然后点“确定”即可;

    编辑类:
    Ctrl+C          复制                基本快捷键
    Ctrl+V          粘贴                基本快捷键
        粘贴大段代码时请特别注意,很多问题来源于复制粘贴。
    Ctrl+X          剪切                基本快捷键
    Ctrl+S          保存                基本快捷键
    Ctrl+Home       跳到文件开头        较有用
    Ctrl+End        跳到文件结尾        较有用
    Ctrl+Left       跳到上一个字        较有用
    Ctrl+Right      跳到下一个字        较有用
    Ctrl+Up         鼠标位置不动,滚动条上移
    Ctrl+Down       鼠标位置不动,滚动条下移
    Ctrl+Y          删除一行            较有用,减少无谓的空行,有助于代码规范
    Ctrl+Shift+Y    删除到行尾
    Ctrl+T          删除到字尾
    Ctrl+Shift+I    块增加一级缩进      很有用,有助于代码规范
    Ctrl+Shift+U    块减少一级缩进      很有用,有助于代码规范
    Ctrl+K+I        同 Ctrl+Shift+I
    Ctrl+K+U        同 Ctrl+Shift+U

---------------------------------------------------------------------------

3. 编辑器选项设置

    主菜单里的“Tools” -> “Editor Options...” 或者在编辑器窗口右键点击,在弹出的菜单里选择“Properties”。

---------------------------------------------------------------------------

4. 让 Form 不自动创建

    在主菜单里的“Project” -> “Options...” -> “Forms”中,将不想要其自动启动的 Form 从“Auto-created forms”移到“Available forms”即可。

---------------------------------------------------------------------------

5. 关掉数据库的登录窗口

    将 TADOConnection 控件的 LoginPrompt 属性设为 false。

---------------------------------------------------------------------------

6. 设置密码框

    将文本框的 PasswordChar 属性设为 * (其他字符也行,除了 #0 之外)。这里设为啥,输入密码时就显示啥。

---------------------------------------------------------------------------

7. 登录窗口先于多文档(MDI)主窗口显示

    在项目源文件(Project Source)里先 new 一个登录窗口,登录成功再创建主窗口。如下所示:
    Application->Initialize();
    frmLogin = new TfrmLogin(Application);
    frmLogin->ShowModal();
    Application->CreateForm(__classid(TfrmMain), &frmMain);
    Application->Run();

    剩下的事情就是在 TfrmLogin 的登录成功事件中 Close() 关闭登录窗口,登录失败事件中 Application->Terminate() 关闭主程序。

---------------------------------------------------------------------------

8. 字符串下标

    AnsiString, String 的下标都是从一开始的,从 1 到 length()。

---------------------------------------------------------------------------

9. 关于 TEdit 控件的复合赋值

    用 += 对 TEdit 控件的 Text 属性赋值无效。编译能通过,但赋不上值。

---------------------------------------------------------------------------

10. OnKeyPress 与 OnKeyDown 的区别

    OnKeyPress是经过系统转换后的按键,根据ASCII码区分的,比方说你按了Shift+a,则相当于输入了A。这个函数相当于处理WM_CHAR消息。

    OnKeyDown没有经过系统转换,是根据虚拟按键值来判断的,比方说你按下了Ctrl+F3,则相当于在控制字符方面输入了Control,并按下了VK_F3这个虚拟键。这个函数相当于处理WM_KEYDOWN消息。

---------------------------------------------------------------------------

11. 让MDI程序不重复打开相同子窗口

    1) 先写一个 openForm 函数,作用是判断将要创建的子窗口是否已存在。若已存在,则显示之,并将鼠标焦点转移到该窗口,并返回 true;若不存在,则返回 false。

    bool __fastcall TfrmMain::openForm(TForm *frm)
    {
        bool frmExist = false;

        // 判断该窗口是否已经被创建。
        if (frm == NULL)
        {
            return false;
        }
        for (int i = 0; i < Screen->FormCount; i++)
        {
            if (Screen->Forms[i]->ClassType() == frm->ClassType())
            {
                frmExist = true;
                break;
            }
        }
        if (false == frmExist)
        {
            return false;
        }

        // 如果此窗口已经被创建,则判断该窗口当前状态,
        // 如果其当前状态为最小化状态或隐藏状态,则显示之。
        if (wsMinimized == frm->WindowState)
        {
            ShowWindow(frm->Handle, SW_SHOWNORMAL);
        }
        else
        {
            ShowWindow(frm->Handle, SW_SHOWNA);
        }
        if (! frm->Visible)
        {
            frm->Visible = true;
        }

        // 将光标的焦点转移到此窗口上。
        frm->BringToFront();
        frm->SetFocus();

        return true;
    }

    2) 在创建子窗口时,先调用该函数。若返回 false (即不存在),则创建之。

        if (false == openForm(formName))
        {
            formName = new formType(Application);
        }

---------------------------------------------------------------------------

12. ADOQuery 的使用

    ★ 一个例子
        if (! ADOConnection1->Connected)
        {
            ADOConnection1->Connected = true;
        }
        ADOQuery1->Active = false;
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("SELECT * FROM table_name");
        ADOQuery1->Active = true;
        Edit1->Text = ADOQuery1->RecordCount;
        Edit2->Text = ADOQuery1->Fields->Fields[1]->AsString;
        ADOQuery1->Next();
        Edit3->Text = ADOQuery1->Fields->Fields[1]->AsString;

    ★ 往数据集里添加纪录
        TADOQuery1->Edit();
        TADOQuery1->Append();

    ★ 从数据集里删除纪录
        TADOQuery1->Edit();
        TADOQuery1->Delete();

    ★ 保存修改到数据集
        TADOQuery1->Edit();
        TADOQuery1->Post();

    ★ 取消对数据集的修改
        TADOQuery1->Edit();
        TADOQuery1->Cancel();
        TADOQuery1->Close();

---------------------------------------------------------------------------

13. 关闭窗口事件

    OnClose         消息阶段的事件,控制关闭时执行什么动作。这里也可以控制不允许关闭窗口,方法是将 Action 参数设为 caNone。
    OnCloseQuery    处理阶段的事件,控制是否允许关闭窗口。如果不允许关闭,将 CanClose 参数设为 false。

---------------------------------------------------------------------------

14. 如何让窗口右上角的按钮不可用?

    1) 直接重载窗口过程将关闭功能屏蔽
        头文件
        class   TForm1:public   TForm
        {
        private:
        public:
        protected:
            virtual   void   __fastcall   WndProc(TMessage   &Message)
        }
        源文件
        void   __fastcall   TForm1::WndProc(TMessage   &Message)
        {
            if(Message.Msg==WM_SYSCOMMAND)
            {
                if(Message.WParam==SC_CLOSE)
                {
                    Message.WParam=0;
                }
            }
        }

    2)
        ★
        HMENU hSysMenu = GetSystemMenu(Handle,0);//得到系统菜单句柄
        EnableMenuItem(hSysMenu,SC_CLOSE,MF_DISABLED);//使"关闭"项不可用.此时"关闭"按钮变灰,但系统菜单中的"关闭"没有变灰,只是不能选择.
        第二句也可以改为:
        EnableMenuItem(hSysMenu,SC_CLOSE,MF_GRAYD);与上面不同的是,这时系统菜单中的"关闭"项也变灰了.

        ★
        HWND m_hWnd = GetSystemMenu(Form_shuo->Handle,false);         //关闭按钮
        EnableMenuItem(m_hWnd,SC_CLOSE,MF_GRAYED);

---------------------------------------------------------------------------

15. 窗口最大化不正常

    有时候在窗口界面设置里将 WindowState 属性直接设为 wsMaximized 得到的最大化效果不理想(比如控件没有像设想的那样靠右排列、树视图下边缘超出可视范围等),这时候可以通过在窗口的 Show 或 ShowModal 语句后加上设置 WindowState 属性为 wsMaximized 的语句来得到理想的效果。

---------------------------------------------------------------------------

16. 隐藏程序主窗体

    程序一开始就隐藏窗口,在 工程名.cpp 中修改:
        Application->Initialize();
        Application->CreateForm(__classid(TForm1), &Form1);
        Application->ShowMainForm = false;
        ShowWindow(Application->Handle, SW_HIDE);
        Application->Run();

    想显示程序时执行下面这两行代码:
        ShowWindow(Application->Handle, SW_SHOW);
        Application->MainForm->Visible = true;

    注:根据我的经验,要想在程序一开始隐藏主窗体,只要在 工程名.cpp 文件中加入
        Application->ShowMainForm = false;
    即可,其他地方想隐藏只要执行 Hide() 方法;而想要显示时,只要执行 Show() 方法即可。

---------------------------------------------------------------------------

17. 由弹出的右键菜单的菜单项获取触发弹出事件的组件(多个组件关联到一个右键菜单时有用)

    例:
        void __fastcall TSomeForm::pmiSomeClick(TObject *Sender)
        {
            TMenuItem *mi = static_cast<TMenuItem *>(Sender);
            TPopupMenu *pm = static_cast<TPopupMenu *>(mi->GetParentComponent());
            TComponent *comp = pm->PopupComponent;

            // 接下来就可以对 comp 进行操作了。
            ...
        }

---------------------------------------------------------------------------

18. 让右键也能选中 TreeView,并且正确响应相应节点(TreeView->Selected 节点自动设为右击的节点)

    首先将 TreeView 的 RightClickSelect 属性设为 true,再设置其 OnContextPopup 事件如下所示:
        void __fastcall TSomeForm::tvSomeContextPopup(
              TObject *Sender, TPoint &MousePos, bool &Handled)
        {
            TTreeView *tv = static_cast<TTreeView *>(Sender);

            // 取鼠标点的地方的TTreeNode
            TTreeNode *node = tv->GetNodeAt(MousePos.x, MousePos.y);

            if (NULL == node)
            {
                // 鼠标点的地方没有TTreeNode,菜单不显
                Handled = true;
            }
            else
            {
                // 右键选中TTreeNode
                tv->Selected = node;
            }
        }

---------------------------------------------------------------------------

19. 在右键菜单弹出之前对右键菜单进行设置

    在 OnContextPopup 事件中设置。

---------------------------------------------------------------------------

20. 将英文提示文字(Yes, No, OK, Cancel...)修改为中文

    1) 在 BCB6 安装目录的 Source/Vcl 目录下找到 consts.pas,并复制一份到你的工程目录下;
    2) 将刚拷过来的 consts.pas 文件中提示文字由英文改为中文;
    3) 在当前工程中加入刚才修改过的 dialogs.pas,具体操作:Project-->Add to Project-->找到该文件,添加进来即可;
    4) 设置一下工程选项:Project-->Options-->Packages-->取消 Build with runtime packages 前面的对钩,确定;
    5) 重新编译运行工程即可。

    出处:http://pc.8s8s.com/pc/pc12990.htm
    参考:http://www.ccrun.com/article.asp?d=w74av8&i=620(通过消息实现自定义输入框)
    注:其他想改动源代码并且应用到现有的 BCB 工程中去的情况估计也类似,但没测试过。

---------------------------------------------------------------------------

21. 显示和屏蔽任务栏

    // 屏蔽任务栏
    ShowWindow(FindWindow("Shell_TrayWnd", NULL), SW_HIDE);

    // 显示任务栏
    ShowWindow(FindWindow("Shell_TrayWnd", NULL), SW_SHOW);

---------------------------------------------------------------------------

22. 禁用和启用任务栏

    // 禁用任务栏
    EnableWindow(FindWindow("Shell_traywnd", NULL), false);

    // 启用任务栏
    EnableWindow(FindWindow("Shell_traywnd", NULL), true);

---------------------------------------------------------------------------

23. 自动隐藏任务栏

    先定义如下函数:
        void __fastcall TfrmSomeForm::autohideTaskBar(bool isAutohide)
        {
            APPBARDATA AppBarData;
            memset(&AppBarData, 0, sizeof(APPBARDATA));
            AppBarData.cbSize = sizeof(APPBARDATA);
            AppBarData.hWnd = FindWindow("Shell_TrayWnd", NULL);

            if (isAutohide)
            {
                // 设定任务栏自动隐藏
                AppBarData.lParam = ABS_AUTOHIDE;
            }
            else
            {
                // 取消任务栏的自动隐藏
                AppBarData.lParam = ABS_ALWAYSONTOP;
            }

            SHAppBarMessage(ABM_SETSTATE, &AppBarData);
        }

    要自动隐藏任务栏时,如下调用该函数:
    autohideTaskBar(true);

    要取消任务栏的自动隐藏时,如下调用该函数:
    autohideTaskBar(false);

---------------------------------------------------------------------------

24. 显示和屏蔽桌面图标

    // 屏蔽桌面图标
    ShowWindow(FindWindow("ProgMan", NULL), SW_HIDE);

    // 显示桌面图标
    ShowWindow(FindWindow("ProgMan", NULL), SW_SHOW);

---------------------------------------------------------------------------

25. 屏蔽系统热键

    1) 方法一,比较彻底,除 Ctrl + Alt + Del 之外全被屏蔽。

    在程序中设置如下全局变量和全局函数:

        // 钩子句柄
        HHOOK OldHook;
        
        long CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam)
        {
            KBDLLHOOKSTRUCT *pkbhs;

            if (code < 0)
            {
                return CallNextHookEx(OldHook, code, wParam, lParam);
            }

            pkbhs = (KBDLLHOOKSTRUCT*) lParam;

            if (pkbhs->vkCode == 91 || pkbhs->vkCode == VK_RWIN)//封锁 win 键
            {
                return 1;
            }

            if (pkbhs->vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL) < 0)
            {
                return 1; //封锁 CTRL+ESC
            }

            if (pkbhs->vkCode == VK_TAB && pkbhs->flags&LLKHF_ALTDOWN)
            {
                return 1; //封锁 ALT+TAB
            }

            if (pkbhs->vkCode == 115 && pkbhs->flags & LLKHF_ALTDOWN)
            {
                return 1; //封锁 ALT+F4
            }

            if (pkbhs->vkCode == VK_ESCAPE && pkbhs->flags & LLKHF_ALTDOWN)
            {
                return 1; //封锁 ALT+ESC
            }

            if (pkbhs->vkCode == VK_SPACE && GetAsyncKeyState(VK_CONTROL) < 0)
            {
                return 1; //封锁 CTRL+ ' '
            }

            return CallNextHookEx(OldHook, code, wParam, lParam);
        }

    然后就可以屏蔽和启用系统热键了:

        // 屏蔽热键
        OldHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyProc, HInstance, 0);
        // 启用热键
        UnhookWindowsHookEx(OldHook);

    2) 方法二,只能屏蔽部分热键。

    // 屏蔽系统热键
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, &temp, 0);
    RegisterHotKey(frmSome->Handle, 1, MOD_ALT, VK_TAB);
    RegisterHotKey(frmSome->Handle, 2, MOD_ALT, VK_F4);
    RegisterHotKey(frmSome->Handle, 3, MOD_CONTROL, VK_ESCAPE);
    RegisterHotKey(frmSome->Handle, 4, MOD_ALT, VK_ESCAPE);

    // 恢复系统热键
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, &temp, 0);
    UnregisterHotKey(frmSome->Handle, 1);
    UnregisterHotKey(frmSome->Handle, 2);
    UnregisterHotKey(frmSome->Handle, 3);
    UnregisterHotKey(frmSome->Handle, 4);

---------------------------------------------------------------------------

26. 禁止拖动窗口

    1) 在类定义的 public (不确定是不是一定要 public) 部分加上如下声明:
        void __fastcall WMKillFocus(TMessage &msg);
        BEGIN_MESSAGE_MAP
            VCL_MESSAGE_HANDLER(WM_NCHITTEST, TMessage, WMKillFocus);
        END_MESSAGE_MAP (TForm)

    2) 函数 WMKillFocus 实现如下:
        void __fastcall TfrmSomeForm::WMKillFocus(TMessage &msg)
        {
            TForm::Dispatch(&msg);
            if (msg.Result == HTCAPTION)
                msg.Result = HTCLIENT;
        }

---------------------------------------------------------------------------

27. 关于画图

    1) TPaintBox 加滚动条方法
    将 TPaintBox 置于 TScrollBox 之上,然后在画图时设定 TScrollBox 的 HorzScrollBar->Range 和 VertScrollBar->Range 即可。

    2) TImage 加滚动条方法
    将 TImage 置于 TScrollBox 之上,然后在画图时设定 TScrollBox 的 HorzScrollBar->Range 和 VertScrollBar->Range,同时还需设定 TImage 的 Picture->Bitmap->Width 和 Picture->Bitmap->Height。

    3) 保存 TPaintBox 图像的方法

    Graphics::TBitmap *savePic = new Graphics::TBitmap;
    TRect Dect, Sect;
    Dect = Rect(0, 0, pb->Width, pb->Height);
    Sect = Rect(0, 0, pb->Width, pb->Height);
    pb->Canvas->Brush->Style = bsClear;
    savePic->Width = pb->Width;
    savePic->Height = pb->Height;
    savePic->Canvas->CopyRect(Dect, pb->Canvas, Sect);
    savePic->SaveToFile("c://abc.bmp");
    delete savePic;

    以上方法的缺点是无法保存超出屏幕大小的图像。

    4) 保存 TImage 图像的方法

    img->Picture->SaveToFile("c://a.jpg");

    5) TImage 图像过大导致“空间不足”错误的处理方法

    设一个小点的格式(默认值是 pfDevice):
    img->Picture->Bitmap->PixelFormat = pf1bit;

    6) 画笔颜色(上一条的副作用)

    如下语句将使得 TImage 变成黑白图片:
    img->Picture->Bitmap->PixelFormat = pf1bit;
    如果想恢复彩色,应该设成大一些的格式(pf4bit 以上):
    img->Picture->Bitmap->PixelFormat = pf4bit;

---------------------------------------------------------------------------

28. 压缩图片

    将 BMP 格式图片压缩为 JPG 格式:

    TJPEGImage *jpg = new TJPEGImage();
    jpg->PixelFormat = jf8Bit; ;//设置像素格式
    jpg->Assign(bmp);
    jpg->Compress();
    jpg->SaveToFile("C://a.jpg");
    delete jpg;

    要记得导入头文件:
    #include <jpeg.hpp>

---------------------------------------------------------------------------

29. 配置备份

    1. 将注册表下
    HKEY_CURRENT_USER/Software/Borland/C++Builder/6.0
    导出为 reg 文件,这里边包含了大部分的设置,包括语法颜色什么的。恢复时导入注册表文件即可。

    2. 将 bcb 目录下 Bin 下的 Codding.dst 和 Debugging.dst 备份。这是 bcb 编写代码和 debug 时的窗体位置配置。恢复时将文件复制到 bin 目录即可。

---------------------------------------------------------------------------
美国Embarcadero公司正式发布2023 RAD Studio Delphi C++ Builder 12 Athens Embarcadero 非常高兴地宣布发布 RAD Studio 12 Athens 以及 Delphi 12 和 C++Builder 12。RAD Studio 12 Athens 版本包含令人兴奋的新功能,为该产品的未来奠定了基础。 阅读详情

相关推荐

[C++]FindWindow,多个窗口名字一致

解决方案原链接https://www.oschina.net/question/1160676_2187843 方案 1.使用FindeWindow先找到第一个窗口 HWND hWnd = NULL; hWnd =::FindWindow(NULL, WindowName); 2.使用FindWindowEx找接下来同名的窗口 hWnd = ::FindWindowEx(NULL, ...

PangCoder的博客 10000

c++builder调用VC的dll以及VC调用c++builder的dll

解析__cdecl,__fastcall, __stdcall 的不同: 在函数调用过程中,会使用堆栈,这三个表示不同的堆栈调用方式和释放方式。 比如说__cdecl,它是标准的c方法的堆栈调用方式,就是在函数调用时的参数压入堆栈是与函数的声明顺序相反的,其它两个可以看MSDN,不过这个对我们编程没有太大的作用 -----------------------------------------...

技术联盟 1887

使用 C++ Builder 12.2中的 Visual Assist 增强重构:干净代码和旧代码的新功能

在最新版本的 RAD Studio中,C++ Builder 配备了强大的工具,可以使您的代码更简洁,工作流程更高效。其中一个突出的功能是 Visual Assist 的增强集成,它现在包括三个特别有用的重构工具:Introduce Variable、Extract Method和Create from Usage。 对于在测试驱动开发 (TDD) 环境中工作或处理更具挑战性的重构遗留代码任务的任何人来说,这些新功能都是一股清新的空气。让我们探讨一下这些工具如何提供帮助,无论您是编写新测试还是处

Delphi开发局QQ群:32422310 1530

[原创]仅需小小的改变,C++ Builder 12的代码完成提示即可完美工作.

将近20年的期盼, C++ Builder 12终于在2023年11月08日发布了. 为什么我那么激动? 因为C++ Builder才是C/C++领域中真正意义的快速开发工具.

其实我不是代码教父,我只是猪头三 2802

C++Builder 高级编程技巧

1. C++ Builder 网上资源     C++ Builder 研究     http://www.ccrun.com/     C++ Builder 程序员     http://mybcb.diy.myrice.com/     电脑学习 C++ Builder 版块     http://www.itcomputer.com.cn/Programs/C/

qq_31209383的博客 1814

C++BUILDER6下编译log4cpp-0.2.8手记

   C++BUILDER6下编译log4cpp-0.2.8手记    log4cpp是一个非常不错的开源项目,但是现有的Release版本中安装程序都存在有问题,导致在编译时不能顺利完成。在C++BUILDER6中编译最新版的log4cpp-0.3.5rc2时存在的问题非常严重,很多文件都缺少头文件,在经过大量的对源代码的修改后仍然无法顺利编译。因此,选择了低版本的log4cpp-0.2.8来进

swnuwangyun的专栏 2846

C++Builder 资料库

1.怎样在C++Builder中创建使用DLL 2.用C++Bulider在WIN.INI中保存信息 3.如何在C++Builder中检测硬件 4.C++Builder如何响应消息及自定义消息 5.利用C++ Builder开发动画DLL 6.用C++ Builder 3制作屏幕保护程序 7.TCP/IP头格式 8.UDP 9.判断windows的Desktop及其它目录 10用C++Builde

chiengod(钱神爷)的专栏 2万+

C++ builder系列之------项目文件及项目初始程序介绍

一:工程文件        C++ Builder应用程序的开发过程都是统一在一个项目之下,所以每个应用程序都是以项目为单位。        新建的项目初始项目文件如下图:                        产生的实际文件如下图:                 下面将介绍六个文件的各自作用: Project1.bpr  -----这个是C++

lonelyboy34的专栏 3986

Visual C++ VS C++ Builder

其实很久以前我就想写这篇文章,其原因一方面是因为笔者深深感觉到C++ Builder的确是一个先进与强大的程式开发工具,但更最重要的一点是,我深信C++ Builder能给公司带来巨大了商业利益与生产力的大幅提升,我可以假装没看到这几点,但是基於良心与责任我不能不花点时间来跟大家分享一下我的看法与心得。 C++ Builder的前身是Borland C++,Borla...

huang714的专栏 3209

C++Builder的基本功能

C++Builder的基本功能 我们用高级语言写程序,我们很得意,因为高级语言比较接近人类的语言,使我们用起来得心应手,所以我们当然得意。但我们更得意的一定是让程序代码赶快变成可执行文件。 无论是在写代码的过程,还是最后要编译成可执行文件,都需要有一个工具存在。这一工具一般称为编程集成环境(IDE)。...

huang714的专栏 1万+

C++BuilderC++的扩展

C++BuilderC++的扩展    C++Builder完全兼容标准C++,标准C++是一个大而广泛的类和函数的集合,这个标准由国际标准化组织(ISO)与美国国家标准委员会(ANSI)共同指定。此标准具有广泛的权威性,一般的开发工具都完全支持它。C++Builder包含了C++,同时又扩展了C++。它在以下几方面增强了C++。   3.4.1 动态函数 动态函数是C++

qq_31209383的博客 1021

boost::regex模块在 cpp 文件中搜索类定义,使用 C++ Builder 闭包作为回调的测试程序

boost::regex模块在 cpp 文件中搜索类定义,使用 C++ Builder 闭包作为回调的测试程序实现功能C++实现代码 实现功能 boost::regex模块在 cpp 文件中搜索类定义,使用 C++ Builder 闭包作为回调的测试程序 C++实现代码 #if defined(__BORLANDC__) && !defined(__clang__) #include <boost/regex.hpp> #include <string> #inclu

希望我的博客,能帮上你解决学习中工作中所遇到的问题 601

CodeGear宣布最新的C++Builder版本 : C++Builder 2007

CodeGear宣布最新的C++Builder版本 : C++Builder 2007WoW,CodeGear昨天才宣布即将推出RoR的开发工具,今天我又看到CodeGear公开了C++Builder 2007,而我们也终于被允许可以讨论C++Builder 2007了,最近CodeGear相当的积极啊。 从CodeGear公布的C++Builder 2007的功能中:     * S

李维 3万+

C++Builder 建立自己的 Web 浏览器

 ---- 用够了IE和NETCAPE的朋友,有没有想过也编制一个自己的浏览器呢?用C++BUILDE使得你能够方便高效的创建自己的INTERNET程序.由于C++BUILDER的基本语言是C++,所以它几乎可以做任何事情,通过C++BUILDER的组件设置,你可以象其他应用程序一样建立INTERNET应用,意味着你可以扩展这些组件来增强他们的功能,如果需要的话,它也可以处理低水平的API细节

iamfancy的专栏 2147

C++Builder PID控制一阶惯性系统

//--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include #in

火星人 2392

C++BUILDER建立自己的WEB浏览器

用够了IE和NETCAPE的朋友,有没有想过也编制一个自己的浏览器呢?用C++BUILDE使得你能够方便高效的创建自己的INTERNET程序.由于C++BUILDER的基本语言是C++,所以它几乎可以做任何事情,通过C++BUILDER的组件设置,你可以象其他应用程序一样建立INTERNET应用,意味着你可以扩展这些组件来增强他们的功能,如果需要的话,它也可以处理低水平的API细节

shiningstar的专栏 2181

探索C++Builder编程的宝藏:C++Builder5与C++Builder6编程实例精解

探索C++Builder编程的宝藏:C++Builder5与C++Builder6编程实例精解 【下载地址】CBuilder5和CBuilder6编程实例精解资源下载 - **文件名**: C++Builder5 and C++Builder6编程实例精解编程实例精解(包含 Builder6 PDF档).7z- **内容...

gitblog_09802的博客 506

C++BUILDER

劲野。。。前十九个同大作业有关 当然是转载的叻... 1. C++ Builder 网上资源 C++ Builder 研究 http://www.ccrun.com/ C++ Builder 程序员 http://mybcb.diy.myrice.com/ 电脑学习 C++ Builder 版块 http://www.itcomputer.com.cn/Program

zhangguoyuanblog的专栏 2112
上一篇: 一些汉语词汇的英语表示
下一篇: Windows 下的网络命令
wplxb
博客等级 码龄23年 20粉丝 108原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值