BCB编程过程中的各种问题集锦.doc_第1页
BCB编程过程中的各种问题集锦.doc_第2页
BCB编程过程中的各种问题集锦.doc_第3页
BCB编程过程中的各种问题集锦.doc_第4页
BCB编程过程中的各种问题集锦.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+需要掌握:类、构造函数、析构函数、函数重载、运算法重载;私有成员、公有成员、保护成员的作用域。一:安装1、 找到INSTALL文件夹里,双击Setup,注册码可从注册机中获得。安装时选择custome方式,最好装在c盘(即使装在D盘,重做系统后也必须重装)。2、 注意一些选项勾选去掉就可以,不装VisiBroker和interbase,可以不备份uninstall信息。3、 安装完成后,重新启动计算机,打开BCB,会提示注册,再打开注册机,将所给的三个代码全部输入到注册机中,注册机会自动给出第四个代码,将其粘贴到空白选项内,即可完成注册。4、 Win7系统注意:帮助文档安装不上的需要另外安装一个更新包,将帮助文档连接上即可。此外还会出现管理权限问题,可通过各盘右键单击,属性-安全-编辑中 将所有用户的完全控制打钩即可。二:开始运行1、 创建工程 File-New-Application2、 修改Tabsize,菜单tools-Editor Option-Tab Stops=43、 保存 :创建一个工程目录,下建sourse子目录,用于存放工程源文件。会先提示保存窗体和类的名字,一般名字前加U表示Unit,窗体文件前面加UForm,再保存工程名一般名字前面加个Pro。4、 文件存放位置:通过Project-Options-Directories/Conditionals来设置,将运行程序产生的可执行文件、OBJ文件分别放在相应文件夹内。通常Intermediate output 内输入debug(相应文件存入debug内),Final output内输入exe。若要在上层文件夹内创建以上两个文件可在相应的输入前加 . 。三:常用组件1. Standard选项卡中PopupMenu, Label, Edit, Memo, Button, CheckBox, RadioButton, ListBox, ComboBox, GroupBox,(RadioGroup, Panel)2. Aditional选项卡中StringGrid, LabelEdit, Chart(MaskEdit, Image, CheckListBox, ColorBox)3. Win32选项卡中PageControl, (DateTimePicker, StatusBar)4. System选项卡中Timer, MediaPlayer5. Win31选项卡中FileListBox, DirectoryListBox, DriveComboBox, FilterComboBox.6. Dialog选项卡中OpenDialog, SaveDialog(ColorDialog)做菜单程序要用到的: MainMenu, ActionList, ImageList, Toolbar四:常用函数(一)字符串AnsiString相关1、SubString(start,num) 字符截取函数 start为起始位置,num为截取字符个数2、Delete(start,num)删除字符 start为起始位置,num为截取字符个数3、Length()计算字符串长度4、Pos(start)计算start在该字符串内的位置(二)字符串转换IntToStr, FloatToStr, IntToHex,FormatStringStrToInt,StrToFloat.c_strString类型的字符串形式(AnsiString型转换成char*型)(三)获取文件信息1. ExtractFileName从全路径文件名中获取文件名2. ExtractFilePath从全路径文件名中获取路径 包括最后的”3. ExtractFileDir4. ExtractFileExt(四)文件操作1. FileExists(“start”)检测文件夹内是否存在文件名为start的文件2. CopyFile3. MoveFile4. DeleteFile(五)类的转换(用于批量处理类似的组件或者实现多个组件共用一个事件函数)dynamic_cast(变量名)五:串口通讯用到的函数CreateFileCloseHandleSetCommStateGetCommStateSetupComm(现在用不上)SetCommTimeoutsClearCommErrorReadFileWriteFile串口的基本操作:打开指定串口关闭指定串口设定串口基本参数设定超时参数从指定串口读取一定字节数的数据向指定串口发送一定字节数的数据串口参数变量类型COMMTIMEOUTS commtimeoutDCB dcb1,dcb2;COMSTAT comstat1,comstat2;六:网络通讯用到的组件InterNet选项卡下的ClientSocket和ServerSocket实验要求:编写两个工程,或在同一个工程的两个窗体下,完成两个网络通讯组件的全部功能测试服务器:1. 组件的配置(端口)2. 打开和关闭3. 客户端管理4. 断开某个客户端5. 向指定客户端发送数据6. 接收某个客户端发来的消息7. 各种事件的响应客户端:1. 组件的配置(IP、端口)2. 连接和断开服务器3. 向服务器发送消息4. 接收来自服务器的消息5. 各种事件的响应七:容器的使用1. 定义:vector MsgList;2. 向容器里最后压入一个基本单元 TMsgFromClient *MsgFromClient=new TMsgFromClient(CSocketMsgID-StrIP, CSocketMsgID-IntPort,StrMsgBody); MsgList.push_back(MsgFromClient);3. 从容器中删除一个单元MsgFromClient=MsgList0;MsgList.erase(MsgList.begin();OrigDataList.erase(OrigDataList.begin(),OrigDataList.begin()+HandleNum0-1);4. 指针的容器要注意内存释放的时机八:自定义windows消息1. 宏定义一个消息的名字及其编号(该宏定义在消息发送的单元及消息处理单元均应可见)#define WM_SSocket (WM_APP+405)2. 在消息处理单元定义消息的处理方法#define WM_SSocketStatusChange (WM_APP+405) /由SSocket发来的信息#define WM_SSocketControlMsg (WM_APP+406) /外部发来,控制SSocketprotected: . /定义消息 void _fastcall SSocketStatusChange(TMessage &Message); void _fastcall SSocketControlMsg(TMessage &Message); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_SSocketStatusChange, TMessage, SSocketStatusChange) MESSAGE_HANDLER(WM_SSocketControlMsg, TMessage, SSocketControlMsg) END_MESSAGE_MAP(TControl)3. 定义消息协议/WPARAM(共32位):/ 第14位(最低4位):Socket事件状态:(0F)/ 0-Accept(接受了客户端连接)/ 1-Connect(客户端建立连接)/ 2-DisConnect(断开连接)/ 3-Listen(正在监听)/ 4-Read(读到消息)/ 5-Write(发送消息)/ 6-GetSocket/ 7-GetThread/ 8-ThreadStart/ 9-ThreadEnd/ F-Error(出现错误)/ 第518位(14位):错误代码/ 第1932位(14位):Client端口号/LPARAM(共32位):Client的IP地址从高到低4个部分各占8位4. 消息的发送PostMessage(MessageHandle,WM_SSocket,(IntLocalPort18)+3,(IP024)+(IP116)+(IP2ReadString(Section, key, Default Value);FileIni-WriteString(Section, key, Value);Delete FileIni;十:多线程ThreadTerminatedSuspendApplication-ProcessMessage()Terminate();Suspend()Resume();十一:数据库编程基本概念数据库、数据库表(字段、字段类型)、数据库引擎(ADO,BDE,ODBC)、SQL语言BCB编程1. 加入数据库组件ADOConnection, ADOCommand, ADOQuery2. 连接数据库ADOConnection-ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=+StrFileName+;Persist Security Info=False;ADOConnection-Connected=true;3. 编写修改数据库的SQL语句的执行代码bool TModuleADO:ModifySQL(AnsiString StrSQL) ADOCommand-CommandText=StrSQL; try ADOCommand-Execute(); return true; catch(.) ShowMessage(TCustomerData:ModifySQL错误:n+StrSQL); return false; 4. 编写查询数据库的SQL语句的执行代码bool TModuleADO:SelectSQL(AnsiString StrSQL) QuerySelect-Close(); QuerySelect-SQL-Clear(); QuerySelect-SQL-Add(StrSQL); try QuerySelect-Open(); catch(.) QuerySelect-Close(); ShowMessage(TCustomerData:SelectSQL错误:n+StrSQL); return false; return true; 5. 查询到的数据如何取出QuerySelect-Fields-Fieldsi-FieldName;/获取查到的数据集的字段名QuerySelect-FieldByName(StrField)-AsString.Trim() 6. 其他相关指令ADOConnection-GetTableNames(SLTableName,false);/获取数据库中的数据库表名日常遇到的问题1、 命名规则:窗体命名为”UForm”;自己编写的类文件名”UClass”2、 *.bpr和*.res不需要我们修改3、 内存泄露:一定要注意处理内存泄漏的问题,在new之后一定要马上写上delete的程序4、 同一层的一定要同时把大括号写上5、 ShowMessage函数经常调用,用于弹出窗口显示字符的6、 编程过程中会生成备份文件,即文件名前面有的,可以删除7、 .tds文件可以删除8、 程序编译选项:1、Project-Options-Linker,去掉Use dynamic RTL勾选项;2、单击Complier-单击Release(不是必须) ; 3、单击Package-取消Builder With Runtime Packages的勾选项;4、最后确认即可。这样再编译之后的程序就是独立于BCB的了。9、 类的名字习惯用T打头10、 Include头文件时,所有BCB自带的头文件都用“”,自己的文件要用双引号11、 程序如不能单步运行解决办法:Project-Options-Compiler-点击Full Debug12、 二维数组引用:首先定义一个二维数组,然后定义一个一维数组,将二维数组每行的首地址依次赋给一维数组,然后引用一维数组的首地址进函数。13、 动态链接库单步调试:(1)在动态链接库的工程里面,添加一个宿主程序,Run-Run Parametres,在Host App

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论