C builder教程大全
CBuilder文件操作大全

在编程的过程中,文件的操作是一个经常用到的问题,在C++Bui lder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:1、基于C的文件操作;2、基于C++的文件操作;3、基于W INAPI的文件操作;4、基于BCB库的文件操作;5、特殊文件的操作。
壹、基于C的文件操作在A NSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。
一、流式文件操作这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:typed ef st ruct{int leve l; /* fill/empt y lev el of buff er */unsi gnedflags; /*Filestatu s fla gs */char fd;/* Fi le de scrip tor */uns igned char hold; /*Unget c cha r ifno bu ffer*/in t bsi ze; /* Buf fer s ize */uns igned char _FAR *buf fer;/* Da ta tr ansfe r buf fer */uns igned char _FAR *cur p; /* Curr ent a ctive poin ter */uns igned iste mp; /* Tem porar y fil e ind icato r */short toke n; /* Used forvalid ity c hecki ng */} FI LE; /* Thi s isthe F ILE o bject */FIL E这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行,此种文件操作常用的函数见下表函数功能fope n() 打开流f close() 关闭流fp utc()写一个字符到流中fget c() 从流中读一个字符f seek() 在流中定位到指定的字符fputs() 写字符串到流fget s() 从流中读一行或指定个字符fp rintf() 按格式输出到流fsc anf()从流中按格式读取feof() 到达文件尾时返回真值ferro r() 发生错误时返回其值rewin d() 复位文件定位器到文件开始处r emove() 删除文件f read() 从流中读指定个数的字符fwrit e() 向流中写指定个数的字符tmp file() 生成一个临时文件流tm pnam() 生成一个唯一的文件名下面就介绍一下这些函数1.fo pen()fo pen的原型是:FI LE *f open(const char *fil ename,cons t cha r *mo de),f open实现三个功能为使用而打开一个流把一个文件和此流相连接给此流返回一个FI LR指针参数fil ename指向要打开的文件名,mode表示打开状态的字符串,其取值如下表字符串含义"r"以只读方式打开文件"w"以只写方式打开文件"a"以追加方式打开文件"r+"以读/写方式打开文件,如无文件出错"w+"以读/写方式打开文件,如无文件生成新文件一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符'\n',而二进制模式认为它是两个字符0x0D, 0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。
第二讲 C++Builder编程入门二

1、编辑框(Edit): 、编辑框 : 编辑框常用的几个属性如下: 编辑框常用的几个属性如下: Text属性是一个 属性是一个String类型的数据 , 它决定了在编辑框 类型的数据 属性是一个 类型 的数据, 中出现的文本字符串。在编程中,我们经常要通过text 中出现的文本字符串。在编程中,我们经常要通过 属性获取编辑框中的文本字符串 获取编辑框中的文本字符串, 属性 获取编辑框中的文本字符串 , MaxLength是一个 是一个 Integer类型的数据 , 它指定编辑框所能容纳的最大字 类型的数据, 类型的数据 符数。缺省情况下为0,表示长度不限。 符数。缺省情况下为 ,表示长度不限。
• (2)Memo组件属性中: Alignment 用来确定Memo组件中显示文本的对齐方式。 WordWrap 确定文本到达右边界时是否自动换行 WantReturn 确定用户是否可以在文本中插入回车符。 WantTabs 确定用户是否可以在文本中插入Tab字符。
属性ScrollBar是一个常见的属性 , 它 是一个常见的属性, 属性 是一个常见的属性 确定着滚动组件滚动条的行为。 ScrollBar有四种可能的取值 ScrollBar有四种可能的取值: 有四种可能的取值: SsNone 表示没有滚动条; 表示没有滚动条; ssHorizonal 表 示 只 有 水 平 滚 动 条 ; ssVertical 表 示 只 有 垂 直 条 ; SsBoth 表示既有水平滚动条也有垂直 滚动条。 滚动条。 当显示的内容比较多时,应该选择 ssBoth, 这样才能够使用户看到所有 , 的内容。 的内容。
• 2、标签控件(Label): 、标签控件
3、Memo组件: Memo组件: 组件
Memo与Edit的属性有很多相似之处: 与 的属性有很多相似之处: 的属性有很多相似之处 属性是一个TStrings类的一个对象 , 它是由 类的一个对象, ( 1) Lines属性是一个 ) 属性是一个 类的一个对象 多个字符串组成的, 每一个字符串就是Lines中的一个 多个字符串组成的 , 每一个字符串就是 中的一个 元素。 组件的每一行文本都是Lines中的一个字符。 中的一个字符。 元素。Memo组件的每一行文本都是 组件的每一行文本都是 中的一个字符 在设计阶段,如果要给 组件增加一些显示内容, 在设计阶段 , 如果要 给 Memo组件增加一些显示内容, 组件增加一些显示内容 可以在对象编辑器中选择属性 选择属性Lines,单击 可以在对象编辑器中 选择属性 , 单击Value列上的 列上的 省略号按钮,这时会打开一个字符串编辑窗口。 在这个编辑器中输入文本。 在这个编辑器中输入文本。编辑器中显示的所有内容都 会出现在Memo组件中。 组件中。 会出现在 组件中
C++Builder入门资料

C++Builder入门怎样在C++Builder中创建使用DLL自从C++Builder从去年浪漫情人节上市以来,吸引了大量的Delphi、VC、Vb的程序员到它的怀抱,大量的C、C++程序员感叹道:总算有了C的可视化开发工具,对我也是一样,从BC、Delphi到C++Builder。
动态链接库(DLL)是Windows编程常遇到的编程方法,下面我就介绍一下在BCB (C++Builder下简称BCB) 中如何创建使用DLL和一些技巧。
一、创建:使用BCB File|NEW建立一个新的DLL工程,并保存好文件BCB,生成一个DLL的程序框架。
1.DllEntryPoint函数为一个入口方法,如果使用者在DLL被系统初始化或者注销时被调用,用来写入对DLL的初始化程序和卸载程序;参数:hinst用来指示DLL的基地址;reason 用来指示DLL的调用方式,用于区别多线程单线程对DLL的调用、创建、卸载DLL;2.在程序中加入自己所要创建的DLL过程、函数;3.用dllimport描述出口;例程序如下:#include#pragma hdrstopextern 揅?__declspec(dllexport) int test();int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*){return 1;}int test(){return 3;}注意:动态链接库中调用过程、函数时有不同的CALL方式 __cdecl、 __pascal, __fastcall、__stdcall,BCB中默认的方式为__cdecl(可不写),如果考虑兼容性可用时__stdcall声明方法为:extern 揅?__declspec(dllexport) int __stdcall test();对于其中过程、函数也改为:int __stdcall test()二、使用DLL在BCB中使用DLL有两种方法:1.用静态调用法首先需要在BCB的项目中加入输入接口库(import library),打开工程项目,使用BCB View|Project Manager打开项目列表,向项目中加入接口库(*.lib)。
C++Builder入门5

DefaultColWidth RowCount
DefaultRowHeight
12
5-5. StringGrid
• 範例5-6:利用StringGrid實作九九乘法表
– 主要程式碼
void __fastcall TForm1::BitBtn1Click(TObject *Sender) { int i, j; //設定Row Header 以及Column Header的數字 for (i = 0 ; i <= 9 ; i++) { if (i == 0 ) { //設定StringGrid中最左上角那一小格的資料 StringGrid1->Cells[0][i] = "九九乘法"; } else { //設定Column Header的值..就是最上面那一排的資料 StringGrid1->Cells[i][0] = IntToStr(i); //設定Row Header的值..就是最左邊那一排的資料 StringGrid1->Cells[0][i] = IntToStr(i); } } //計算九九乘法表內的資料 for (i = 1 ; i <= 9 ; i++) for (j = 1 ; j <=9 ; j++) StringGrid1->Cells[i][j] = IntToStr(i * j); } 13
第五章 C++ Builder 顯示與輸入介面
視窗程式中,佔最大部分的大概就是按鈕跟一 些輸入框了。在這一章裡面,我們詳細的介紹 各種標籤、按鈕以及輸入的VCL元件,進而介 紹一些按鈕軸的使用方法,以及類似筆記本的 多行輸入窗。
1
cbuilder6编程(宝典)

第2 章语法摘述 2.1 抽象数据类型CBuilder 中以类的方式提供了几个非常有用的抽象数据类型。
包括TList 链表 类、AnsiString 类、Set 集合 类、DynamicArray 动态数组 类和TStream 流 类。
在程序编写过程中 这几个类的使用在很多地方都起到很重要的作用。
2.1.1 TList 类TList 实现了线形链表 可以用来存储任意类的对象 包括用户自定义的类。
虽然它是链表 但是它实际上是一个存放指针的数组 可以通过其Items 属性象访问一个数组那样实现对TList 对象的每一个元素的访问。
TList 类提供了足够的属性和方法实现对链表的各种操作 如全套插入、删除、查找、排序以及提供链表元素数目 Count 属性 等属性。
1 TList 类的主要属性有 Capacity 属性__property int Capacity readFCapacity writeSetCapacity nodefault 设定Capacity 指定TList 对象中的元素个数 并为新增加的元素分配内存。
如果没有足够的内存为新元素分配空间 将会抛出一个EOutOfMemory 异常。
这里需要注意Capacity 属性和Count 属性的不同。
Count 属性是TList 对象中Items 属性的元素个数 而Capacity 是TList 类可以包含的元素个数 由分配了多少的内存决定 Capacity 总是大于或者等于Count。
将一个元素插入链表 其Capacity 属性会自动随之更改。
如果需要多次的执行添加操作 那么可以先设置Capacity 这样就能避免每次Add 方法都要重新指定内存从而提高程序的执行效率 如下面的代码 List-gtClear List-gtCapacity Count for int I 0 I lt Count I List-gtAdd... 代码中 在循环执行Add 之前先指定了Capacity 属性 这样就避免了循环中Add 的分配内存的操作 提高了程序的效率 而且 也避免了分配内存时的异常。
C++Builder一些小技法

C++Builder一些小技法怎样在C++Builder中创建使用DLL自从C++Builder从去年浪漫情人节上市以来,吸引了大量的Delphi、VC、Vb的程序员到它的怀抱,大量的C、C++程序员感叹道:总算有了C的可视化开发工具,对我也是一样,从BC、Delphi到C++Builder。
动态链接库(DLL)是Windows编程常遇到的编程方法,下面我就介绍一下在BCB (C++Builder下简称BCB) 中如何创建使用DLL和一些技巧。
一、创建:使用BCB File|NEW建立一个新的DLL工程,并保存好文件BCB,生成一个DLL的程序框架。
1.DllEntryPoint函数为一个入口方法,如果使用者在DLL被系统初始化或者注销时被调用,用来写入对DLL的初始化程序和卸载程序;参数:hinst用来指示DLL的基地址;reason用来指示DLL的调用方式,用于区别多线程单线程对DLL的调用、创建、卸载DLL;2.在程序中加入自己所要创建的DLL过程、函数;3.用dllimport描述出口;例程序如下:#include#pragma hdrstopextern 揅?__declspec(dllexport) int test();int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*){return 1;}int test(){return 3;}注意:动态链接库中调用过程、函数时有不同的CALL方式__cdecl、__pascal, __fastcall、__stdcall,BCB中默认的方式为__cdecl(可不写),如果考虑兼容性可用时__stdcall声明方法为:extern 揅?__declspec(dllexport) int __stdcall test();对于其中过程、函数也改为:int __stdcall test()二、使用DLL在BCB中使用DLL有两种方法:1.用静态调用法首先需要在BCB的项目中加入输入接口库(import library),打开工程项目,使用BCB View|Project Manager打开项目列表,向项目中加入接口库(*.lib)。
C++ Builder 使用教程

C++ Builder 使用教程1.access violation at address错误的解决办法右击“我的电脑”。
单击“属性”。
在“系统属性”中单击“高级”。
在“性能”中单击“设置”。
在“性能选项”中单击“数据执行保护”。
单击“添加”。
选择要运行的程序。
OK。
就这么简单。
2.连接数据库Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=数据库文件.mdb;Persist Security Info=False3. Persist Security Info属性Persist Security Info属性的意思是表示是否保存安全信息,其实可以简单的理解为"ADO在数据库连接成功后是否保存密码信息",True表示保存,False表示不保存ADO缺省为True(缺省为False,未测试,根据参考资料上说的)具体可以通过ADO的Connect对象的ConnectString属性进行验证,如下所示(以下在Delphi7中测试通过):----------------------------------------------------------------------------------------------------------数据库连接前ConnectString="Provider=MSDAORA.1;Password=mypassword;User ID=yzs;Data Source=ydgl22;Persist Security Info=false"数据库连接成功后ConnectString="Provider=MSDAORA.1;User ID=yzs;Data Source=ydgl22"----------------------------------------------------------------------------------------------------------数据库连接前ConnectString="Provider=MSDAORA.1;Password=mypassword;User ID=yzs;Data Source=ydgl22;Persist Security Info=true"数据库连接成功后ConnectString="Provider=MSDAORA.1;Password=mypassword;User ID=dlyx;Data Source=ydgl22"----------------------------------------------------------------------------------------------------------总体来说,如果数据库连接成功后不再需要连接的密码,出于安全性考虑,还是建议将Persist Security Info设为false,以防止后门程序取得数据库连接的密码(windows2003在sp1前就发生过这个问题)。
第10章CBuilder图形程序设计入门

取消选定的画笔、画刷和字体,但不改变其属性值
画园角填充矩形
从内存中复制位图到画笔上,尺寸可伸缩
返回传入Text参数的AnsiString类字符串的高度和宽度
返回传入Text参数的AnsiString类字符串的高度
使用当前字体在画笔上输出文本
在剪裁矩形内输出文本
返回传入Text参数的AnsiString类字符串的宽度
位图、绘制图像、输出文字。 • Center:指定图像是否居中显示。 • Picture:确定在TImage中显示的图像。 • Stretch:确定在TImage中显示的图像是否调整自身以适应TImage
的大小。 • Transparent:确定TImage组件的背景是否透明。
10.3.3 TShape组件
形一样,唯一的差别在于前者包含的是打开文件按钮,后者包含 的是保存文件按钮。
打开或 保存
的设备无关性.
• 基于消息驱动
•
消息是关于用户接口改变的事件产生的。如鼠标、键盘、窗
口变化等。一般用一个专用符号常量表示一种对应消息。以WM_
开头。
10.1 Windows图形编程知识
• 10.1.2 图形设备接口——GDI
• Windows操作系统具有一系列组建模块,分别负责系 统管理的某个方面,与绘图联系最密切的组建是图形 设备接口(GDI)。GDI管理像画笔、位图及调色板这 样的图形对象,每个GDI对象都使用某种方式控制GDI 提供的绘图例程的动作。画笔确定了GDI画的线条的 属性,画刷影响GDI如何填充屏幕的不同区域,当窗 口需要重画时,Windows类使用WHITE_BRUSH填充窗口 的整个背景。
•
原点在窗口的可绘图区域的左上角。
•
(很基础)编程摇篮的CBuilder_6教程

C++Builder的基本功能我们用高级语言写程序,我们很得意,因为高级语言比较接近人类的语言,使我们用起来得心应手,所以我们当然得意。
但我们更得意的一定是让程序代码赶快变成可执行文件。
无论是在写代码的过程,还是最后要编译成可执行文件,都需要有一个工具存在。
这一工具一般称为编程集成环境(IDE)。
之所以称为集成,是因为从写代码到最后软件的出炉,我们需要它的地方实在太多了,这里列出其中最重要的功能项。
1、代码编辑:方便的代码编辑功能。
尽管你可以使用记事本、Word或其它任何文本编辑器来写代码,但除非特殊需要,否则那将是极为低效的方法。
相反,现在的编程集成环境,都相当的智能,举例如:代码自动功能,可以在很多情况下自动完成我们所需的代码,既准确还迅速。
Borland公司出品的编程集成环境不仅有常见的关键字高亮等功能,还支持代码模板,支持键盘宏,同样支持高级的脚本插件功能。
2、界面设计:可视化的程序界面设计功能。
你所要产生的窗口,在设计期间就真实地出现,包括字体、颜色和定位。
比如:你不仅可以插入falsh的动画,而且无需运行,就直接可以在你的界面上看到该动画的演播,这是别的编程环境不能做到的。
3、程序编译:这是编程工具的主要功能。
我们写的代码在成为机器能懂的可执行程序时,必须通过编译。
4、程序调试:如何尽量减少你程序的BUG呢?没有编程集成环境提供的强大调试功能,我们做的程序将毫无质量保证。
5、代码优化:Borland 提供的编译器,不仅在编译速度上一直在美国屡获大奖,而且其代码自动优化功能一直领先对手几近一个时代。
使用编程集成环境,我们可以轻松获得更快更优的最终可执行程序文件。
6、辅助程序安装:程序的安装已属于另外一种工具的范畴,但我们仍可以通过编程集成环境来决定最终生成单一可执行文件,还是带有其它动态库。
如果是后者,我们还可以通过集成环境来检查程序运行时调用了哪些动态库文件。
C++Builder 提供的功能远不止我上面所说的,并不是因为我嘴笨,而是我认为对一个工具,你只有动手使用,才会真正了解它。
C++ Builder 快速入门及技巧分享

Edit控件的小窍门,虚拟动态创建,输入验证1、虚拟动态创建。
在需要选择多个Edit控件,可以先设置Edit控件的visiable属性为false,然后用事件触发显示Edit,代码为:void __fastcall TForm1::Label1Click(TObject *Sender){ Edit1->Show();}2、输入验证。
用好下面Edit的两个事件:void __fastcall TForm1::Edit1Exit(TObject *Sender){}和void __fastcall TForm1::Edit1Change(TObject *Sender){ },这两个事件函数连起来用会让你的程序更友好。
程序运行时控件的位置可以自由移动在需要移动的控件的OnMouseMove事件中加入一段代码即可,如:void __fastcall TForm1::Button1MouseMove(TObject *Sender,TShiftState Shift, int X, int Y){WORD SC_DragMove=0xF012;ReleaseCapture();((TWinControl*)Sender)->Perform(WM_SYSCOMMAND,SC_DragMove,0);}这个功能适合所有具有OnMouseMove事件控件,但要注意的是,引入此功能后,原来需要移动鼠标的操作就做不了了,比如:通过移动鼠标选定Edit控件内的文字。
鼠标拖动窗体的非标题栏区域这需要调用windows API函数,不多说,直接给出方法:1、先在头文件的Public对象区添加如下内容:void __fastcall Test(TMessage &Message);//本行为定义新函数的声明BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_NCHITTEST,TMessage,Test) END_MESSAGE_MAP(TForm)2、然后再cpp文件内加入下列函数:void __fastcall TForm1::Test(TMessage&Message){ if(GetAsyncKeyState(VK_LBUTTON)< 0)Message.Result=HTCAPTION; else Message.Result=HTCLIENT;}这样已经完成了。
补充3:C++Builder程序中菜单、工具的设计

主讲教师: 主讲教师:张鹏祥
补充3:菜单、 补充3:菜单、工具软件的编写 3:菜单
二、主菜单的设计方法
1、启动C++Builder集成环境,新建应用程序项目 2、在软件主界面窗体中放置Standard工具箱的MainMenu组件,该 组件为不可见组件,放在什么位置都可以,主菜单一定出现在固 定位置 3、设计主菜单 双击窗体中的MainMenu组件,即打开主菜单编辑器,顺序添加菜 单项,每个菜单项设置Caption的内容 需要时,可在菜单项组件的属性ShortCut中设置快捷键 需要时可创建二级菜单,右击菜单项,在弹出菜单中选择 CreateSubMenu,可顺序建立二级菜单项 需要在菜单中添加分割线,只需添加一个Caption值为“-”(英文减 号)的菜单项即可,该菜单项就是菜单分割线 需要时,可在菜单项的Caption值中的某个字母前加上& 号,该字母便是这个菜单项的加速键
菜单工具软件的编写二主菜单的设计方法1启动cbuilder集成环境新建应用程序项目2在软件主界面窗体中放置standard工具箱的mainmenu组件该组件为不可见组件放在什么位置都可以主菜单一定出现在固定位置3设计主菜单双击窗体中的mainmenu组件即打开主菜单编辑器顺序添加菜单项每个菜单项设置caption的内容需要时可在菜单项组件的属性shortcut中设置快捷键需要时可创建二级菜单右击菜单项在弹出菜单中选择createsubmenu可顺序建立二级菜单项需要在菜单中添加分割线只需添加一个caption值为英文减号的菜单项即可该菜单项就是菜单分割线需要时可在菜单项的caption值中的某个字母前加上号该字母便是这个菜单项的加速键主讲教师
主讲教师: 主讲教师:张鹏祥
补充3:菜单、 补充3:菜单、工具软件的编写 3:菜单
C++Builder入门资料

C++Builder入门资料C++Builder入门怎样在C++Builder中创建使用DLL自从C++Builder从去年浪漫情人节上市以来,吸引了大量的Delphi、VC、Vb的程序员到它的怀抱,大量的C、C++程序员感叹道:总算有了C的可视化开发工具,对我也是一样,从BC、Delphi到C++Builder。
动态链接库(DLL)是Windows编程常遇到的编程方法,下面我就介绍一下在BCB (C++Builder下简称BCB) 中如何创建使用DLL和一些技巧。
一、创建:使用BCB File|NEW建立一个新的DLL工程,并保存好文件BCB,生成一个DLL的程序框架。
1.DllEntryPoint函数为一个入口方法,如果使用者在DLL被系统初始化或者注销时被调用,用来写入对DLL的初始化程序和卸载程序;参数:hinst用来指示DLL的基地址;reason用来指示DLL的调用方式,用于区别多线程单线程对DLL的调用、创建、卸载DLL;2.在程序中加入自己所要创建的DLL过程、函数; 3.用dllimport描述出口;例程序如下:#include#pragma hdrstopextern �C?__declspec(dllexport) int test();int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) {return 1; }int test() {return 3; }注意:动态链接库中调用过程、函数时有不同的CALL方式 __cdecl、 __pascal,__fastcall、__stdcall,BCB中默认的方式为__cdecl(可不写),如果考虑兼容性可用时__stdcall声明方法为:extern �C?__declspec(dllexport) int __stdcall test(); 对于其中过程、函数也改为: int __stdcall test() 二、使用DLL在BCB中使用DLL有两种方法: 1.用静态调用法首先需要在BCB的项目中加入输入接口库(import library),打开工程项目,使用BCB View|Project Manager打开项目列表,向项目中加入接口库(*.lib)。
Cbuilder教程大全

Cbuilder教程⼤全BorlandC++Builder5.0是Interpries(Borland)公司推出的基于C++语⾔的快速应⽤程序开发(RapidApplicationDevelopment,RAD)⼯具,它是最先进的开发应⽤程序的组件思想和⾯向对象的⾼效语⾔C++融合的产物。
C++Builder充分利⽤了已经发展成熟的Delphi的可视化组件库(VisualComponentLibrary,VCL),吸收了BorlandC++5.0这个优秀编译器的诸多优点。
C++Builder结合了先进的基于组件的程序设计技术,成熟的可视化组件库和优秀编译器,调试器。
发展到5.0版本,C++Builder已经成为⼀个⾮常成熟的可视化应⽤程序开发⼯具,功能强⼤⽽且效率⾼。
C++Builder的特⾊:1.C++Builder是⾼性能的C++开发⼯具C++Builder是基于C++的,它具有⾼速的编译,连接和执⾏速度。
同时,C++Builder具有双编译器引擎,不仅可以编译C/C++程序,还能编译ObjectPascal语⾔程序。
2.C++Builder是优秀的可视化应⽤程序开发⼯具C++Builder是⼀完善的可视化应⽤程序开发⼯具,使程序员从繁重的代码编写中解放出来,使他们能将注意⼒重点放在程序的设计上,⽽不是简单的重复的劳动中。
同时,它提供的完全可视的程序界⾯开发⼯具,从⽽使程序员对开发⼯具的学习周期⼤⼤缩短。
3.C++Builder具有强⼤的数据库应⽤程序开发功能C++Builder提供了强⼤的数据库处理功能,它使的程序员不⽤写⼀⾏代码就能开发出功能强⼤的数据库应⽤程序,这些主要依赖于C++Builder众多的数据库感知控件和底层的BDE数据库引擎。
C++Builder除了⽀持Microsoft的ADO(ActiveDataObject)数据库连接技术,还提供了⼀种⾃⼰开发的成熟的数据库连接技术——BDE(BorlandDatabaseEngine)数据库引擎。
C++Builder入门20

開發資料庫由於需要和資料庫進行連線,所以 動作上比一般的程式來的繁瑣,不論是檢視或 建立資料表皆需要額外的工具輔助,為此, C++ Builder提供了一些實用的輔助工作來協助 程式設計師開發資料庫程式,本章節將就這些 工作進行介紹,以使身為設計師的你更能得心 應手的開發資料庫程式。
MySQL資料庫中現存的資料表 輸入欲存資料表名稱
連結MySQL資料庫的Alias
20-2. Datapump工具使用
• Datapump工具的主要功用在於幫助使用者進行資料移轉的工作,也就是 把某個資料庫內的資料表轉移到另外一個資料庫內,或是把資料表的內容 全部讀取出來,這對於資料庫系統的移轉十分方便,譬如公司原來使用的 Paradox資料庫隨著公司規模擴大或資料量增加而效能低落,此時必須改 用效能較好的遠端資料庫系統如MySQL來代替原有的Paradox資料庫,此 時利用Datapump程式能快速的將原有存在於Paradox中的資料表內容原 封不動的轉移到MySQL資料庫內,節省重新輸入的麻煩,所以對於有資 料移轉需求的讀者來說,Datapump程式是一個十分有用的工具。 • 透過【開始】【程式集】【Borland C++ Builder 6】【Datapump】 開啟Datapump程式,該程式沒有繁複花俏的介面,直接透過表單畫面以 Step By Step的方式要求使用者就移轉的來源、移轉的目標和欄位的對應 關係等進行設定,因此,我們直接以每個表單畫面的內容進行說明,就每 個表單教導讀者進行設定,而第一個表單即就移轉的來源進行設定。
20-1-2. 建立資料表
• 除了檢視資料表外,Database Desktop也支援建立資料表的能力, 首先,請選擇主選單中的【File】 【New】【Table】來開啟一 個資料表,如右所示。 • 接著將會出現選擇資料表類型的 對話框要求就新增的資料表類型 進行設定,為一下拉式的選單, 提供了對Paradox、dBase、 FoxPro、MS Access等不同資料 表類型的支援,雖然格式允許不 同,但整個新增資料表的方式仍 然相同。
C++Builder入门资料

C++Builder入门怎样在C++Builder中创建使用DLL自从C++Builder从去年浪漫情人节上市以来,吸引了大量的Delphi、VC、Vb的程序员到它的怀抱,大量的C、C++程序员感叹道:总算有了C的可视化开发工具,对我也是一样,从BC、Delphi到C++Builder。
动态链接库(DLL)是Windows编程常遇到的编程方法,下面我就介绍一下在BCB (C++Builder下简称BCB) 中如何创建使用DLL和一些技巧。
一、创建:使用BCB File|NEW建立一个新的DLL工程,并保存好文件BCB,生成一个DLL的程序框架。
1.DllEntryPoint函数为一个入口方法,如果使用者在DLL被系统初始化或者注销时被调用,用来写入对DLL的初始化程序和卸载程序;参数:hinst用来指示DLL的基地址;reason 用来指示DLL的调用方式,用于区别多线程单线程对DLL的调用、创建、卸载DLL;2.在程序中加入自己所要创建的DLL过程、函数;3.用dllimport描述出口;例程序如下:#include#pragma hdrstopextern 揅?__declspec(dllexport) int test();int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*){return 1;}int test(){return 3;}注意:动态链接库中调用过程、函数时有不同的CALL方式 __cdecl、 __pascal, __fastcall、__stdcall,BCB中默认的方式为__cdecl(可不写),如果考虑兼容性可用时__stdcall声明方法为:extern 揅?__declspec(dllexport) int __stdcall test();对于其中过程、函数也改为:int __stdcall test()二、使用DLL在BCB中使用DLL有两种方法:1.用静态调用法首先需要在BCB的项目中加入输入接口库(import library),打开工程项目,使用BCB View|Project Manager打开项目列表,向项目中加入接口库(*.lib)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BorlandC++Builder5.0是Interpries(Borland)公司推出的基于C++语言的快速应用程序开发(RapidApplicationDevelopment,RAD)工具,它是最先进的开发应用程序的组件思想和面向对象的高效语言C++融合的产物。
C++Builder充分利用了已经发展成熟的Delphi的可视化组件库(VisualComponentLibrary,VCL),吸收了BorlandC++5.0这个优秀编译器的诸多优点。
C++Builder结合了先进的基于组件的程序设计技术,成熟的可视化组件库和优秀编译器,调试器。
发展到5.0版本,C++Builder已经成为一个非常成熟的可视化应用程序开发工具,功能强大而且效率高。
C++Builder的特色:1.C++Builder是高性能的C++开发工具C++Builder是基于C++的,它具有高速的编译,连接和执行速度。
同时,C++Builder具有双编译器引擎,不仅可以编译C/C++程序,还能编译ObjectPascal语言程序。
2.C++Builder是优秀的可视化应用程序开发工具C++Builder是一完善的可视化应用程序开发工具,使程序员从繁重的代码编写中解放出来,使他们能将注意力重点放在程序的设计上,而不是简单的重复的劳动中。
同时,它提供的完全可视的程序界面开发工具,从而使程序员对开发工具的学习周期大大缩短。
3.C++Builder具有强大的数据库应用程序开发功能C++Builder提供了强大的数据库处理功能,它使的程序员不用写一行代码就能开发出功能强大的数据库应用程序,这些主要依赖于C++Builder众多的数据库感知控件和底层的BDE数据库引擎。
C++Builder除了支持Microsoft的ADO(ActiveDataObject)数据库连接技术,还提供了一种自己开发的成熟的数据库连接技术——BDE(BorlandDatabaseEngine)数据库引擎。
4.C++Builder具有强大的网络编程能力C++Builder具有众多的Internet应用程序开发控件,如WebBroker,CppWebBrowser,WinSocks 等,它们基本含盖了Internet应用的全部功能,利用它们程序员可以方便地建立自己地Internet 应用程序。
一.C++Builder5.0的集成开发环境(IDE,IntegratedDevelopmentEnvironment)二.三.1.C++Builder5.0的IDE主界面四.五.1)组件面板标准组件选项卡上的组件是构成Windows应用程序窗口最常用的标准元素,它们包括15种组件。
主要有:主菜单(MainMenu),右键菜单(PopMenu),标签(Label),备注(Memo),命令按钮(Button),单选按钮(GroupBox),复选按钮(CheckBox),列表框(ListBox),下拉式列表框(ComboBox),滚动条(ScrollBar),组框(GroupBox)和单项按钮组框(RadioGroup)。
附加组件选项卡上的组件是Windows应用程序常用的专门控制元素,它包括14种组件。
主要有:位图按钮(BitBtn),加速按钮(SpeedButton),格式编辑框(MaskEdit),字符网格(StringGrid),数据网格(dataGrid),图片框(Image),形状(Shape),和控制栏(ControlBar)。
Win32组件选项卡上的组件是32位Windows应用程序的常用元素,它们具有32位应用程序的新特征,Win32组件选项卡共包括18种组件。
分页面控制(PageControl),图片列表(ImageList),多文本编辑器(RichEdit),列表视图框(ListView),树状目录视图框(TreeView),工具栏(ToolBar)和状态栏(StatusBar)。
DataAccess和DataControl组件选项卡上的组件是用来设计数据库应用程序的。
其中DataAccess组件选项卡上的组件是数据库应用程序用来与数据库建立连接的,它们也称为数据访问组件。
而DataControl组件选项卡上的组件是用来与用户交互的,它们也称为数据感知组件。
主要是:表(Table),查询(Query),数据源(DataSource),数据库导航器(DBNavigator),数据表格(DBGrid),数据库编辑框(DBEdit),数据库静态文本框(DBText),数据库列表框(DBListBox),数据库图片(DBImage)。
Dialogs组件选项卡是由一些常用标准对话框组件组成的。
主要完成打开文件,保存文件,查找,替换,打印,打印机设置等Windows标准的对话框功能。
2)对象查看器对象名称用于选择和查看当前对象的名称,属性选项卡用于设置对象设计时的可见属性,事件选项卡用来设置对象的事件句柄或者在代码编辑器中定位对象事件句柄二.创建Windows程序在主菜单中选择【File】中的【New】,在New对话框中选择Application,按OK。
三.运行程序在菜单中选择【Run】中的【Run】,或者直接按快捷菜单上的运行按钮,还有是按快捷键F9,就可以运行当前程序。
四.编译程序在菜单中选择【Project】中的【buildproject1】就可以把程序编译成为可以直接运行的.exe 文件。
但是这样编译而来的执行文件因为是动态连接到库函数,所以在没有装C++Builder的机上不能正常运行。
要编译成静态连接库,可以在所有机上运行的程序,只要这样做:打开【project】的【Options】,把packages页中的‘buildwithruntimepackages’的勾去掉,linker页中的‘usedynamicRtl’的勾去掉,再在compiler页中按release键。
然后重新在【Project】中的【buildproject1】就可以把程序编译成为可以直接运行的.exe文件。
五.保存程序在主菜单中选择【File】中的【SaveProjectAs】选项。
再把所以文件(包括.cpp,.bak)都保存到一个目录下面。
加载C++Builder组件和引入ActiveX控件一.加载C++Builder组件C++Builder中有很多组件,其中有一大部分组件不是很常用的,所以在C++Builder中默认只加载了一部分常用的组件,其他组件就要进行手工加载。
或者从别的地方(如在网上下载)得到一些其他的组件包(*.bpl),要把它加载到C++Builder里面,就要用到加载组件。
在C++Builder中加载组件是很方便的,你可以在主菜单【Project】中按【Options】,再选【packages】页,又或者在【Component】中选【InstallPackages】,得到packages对话框(如下图)。
如果你想要加载C++Builder中未加载的组件,只有在相应的组件包的前面打勾来选定;如果你要加载其他组件包,按【Add】按钮,再在【AddDesignPackage】对话框中选定其组件包(*.bpl)。
之后按【OK】键,新加载的组件就会出现在组件面板上。
二.引入ActiveX控件众所周知,ActiveX控件因为其可以跨平台的特性使得ActiveX在很多环境下被广泛地使用。
在C++Builder中引用ActiveX很简单。
具体操作是在主菜单【Component】中选【ImportActiveXControl…】,弹出【ImportActiveX】的对话框,在对话框中选择你要引用的ActiveX控件。
1.控件类明,可以包括多个,表示这个ActiveX控件包里面有多个ActiveX控件,如这里就包TSkinForm,TskinButton和TSkinPanel这三个控件。
2.组件在ComponentPalette(组件面板)的页面。
在本例中,我们把引入的ActiveX控件放在ActiveX页面中。
3.组件的源文件(.cpp)。
4.当前搜索路径,一般不用修改。
按【Install】键,ActiveX控件已经成功地引入到C++Builder中,反正组件面板的ActiveX 页面中。
编程入门第一课――HelloWorld曾几何时,HelloWorld已经成为编程入门的第一课。
不管是什么语言,都以一个打出HelloWorld字串的小程序作为第一个入门程序。
我们现在学C++Builder也把这个程序作为学习C++Builder的第一个入门程序。
相对C/C++等非可视化语言来说,C++Builder作为一种强大的可视化编程语言,那么它的入门级的HelloWorld程序也会非同凡响,而且还很简单易懂。
好,现在就开始我们的HelloWorld!一.首先要创建一个新的程序。
在【File】菜单下选【New】,再在【NewItems】对话框中选择Application,按OK键。
或者在【File】菜单下直接选择【NewApplication】。
二.加入相关组件。
把要用到的组件从在组件面板(Palette)上拖到窗体(Form)上,摆好位置,并设置好大小。
我们这里用到一个标签(Label)和两个命令按钮(Button)。
再改变窗体的大小,使窗体看上去好看一点。
三.设置组件的属性在属性查看器中修改各个组件的属性。
下面的图示是把Label1的Caption(标题)属性改为‘HelloWorld’。
先点击窗体上的Label1组件,再在右边的属性查看器中选定Caption的项,输入’HelloWorld’。
编程入门第一课――HelloWorld如上述所示,分别设置三个组件的属性为:组件属性值Form1 Caption HelloWorldLabel1 Caption HelloWorldFont 宋体,粗体,一号Button1 Caption StartButton2 Caption Exit四.加入事件。
双击Button1,弹出代码编辑窗口,在Button1Click事件中加入以下代码:Label1->Caption="HelloC++Builder!";双击Button2,在Button1Click事件中加入以下代码:Form1->Close();五.编译运行HelloWorld程序。
按快速栏上的运行按钮,或者按快捷键(F9)运行HelloWorld程序。
按【Start】按钮,结果如下:按【Exit】退出程序。
到此为止,一个完整的HelloWorld程序就完成啦,是不是简单得不可思议呢?下面再说两个小技巧:1.更换标题栏上得图标。