内容简介
dbExpress是Borland公司下一代数据访问技术。本书不仅详细介绍了dbExpress的基本功能、使用技巧以及Delphi/Kylix的DataSnap技术,还详细讨论了dbExpress的实现原理以及dbExpress的未来发展趋势。本书结构清晰,讲解透彻,实例丰富。作者李维是Borland公司著名技术专家,曾著有多部Delphi名著。通过阅读本书,读者可以充分利用dbExpress的强大功能,开发出高效率的Delphi/Kylix系统。本书适合Delphi/Kylix/C++Builder程序员、数据库程序设计师以及对Delphi/Kylix感兴趣的人员阅读。 目录
序 第一部分 dbExpress基本功能篇 第1章 dbExpress组件、概念、技术和应用程序 1.1 dbExpress组件
1.2 建立第一个dbExpress数据库应用程序
1.3 使用dbExpress的概念
1.4 使用dbExpress修改数据
1.4.1 使用TSQLDataSet搭配TDataSetProvider和TClientDataSet组件
1.4.2 使用TSimpleDataSet组件
1.5 dbExpress驱动程序的设置
1.6 结论 第2章 使用dbExpress组件 2.1 使用TSimpleDataSet组件
2.1.1 使用动态SQL语句处理数据
2.1.2 Data和Delta特性
2.1.3 修改数据—多个数据表 ......
有时需要使用透明控件用于捕获鼠标消息
1.调用Windows2000,xp新的API函数实现这一功能的过程。使用SetLayeredWindowAttributes
2.直接设置控件的alphablend,alphablendvalue,间接调用上述api.
3.使用TStaticText控件
procedure WMCtrlColor(var Message: TWMCtlColor); message WM_CTLCOLOR;
procedure TForm3.WMCtrlColor(var Message:TWMCtlColor);
begin
if (Message.ChildWnd = StaticText1.Handle)then
begin
SetBkMode(Canvas.Handle,TRANSPARENT);
Message.Result:= GetStockObject(NULL_BRUSH);
end;
end;
4.使用TShape或TLabel无句柄控件,transparent属性. ......
Delphi 的字符及字符串[1] - string、AnsiString、WideString、String[n]、ShortString
2008-10-17 14:57:17
//最常用的 string
var
str: string; {定义}
begin
str := '万一'; {赋值}
ShowMessage(IntToStr(Length(str))); {长度是: 4}
end;
//长字符串 AnsiString; 在当前版本(2007)中的默认状态下, String 就是 AnsiString
var
str: AnsiString;
begin
str := '万一';
ShowMessage(IntToStr(Length(str))); {长度是: 4}
end;
//宽字符串 WideString (效率不及 AnsiString)
var
str: WideString;
begin
str := '万一';
ShowMessage(IntToStr(Length(str))); {长度是: 2}
end;
//定长字符串
var
str1: String[6]; {指定大小不能超过 255}
str2: String[100];
begin
{少给了也会占那些内存}
str1 := '万一';
ShowMessage(str1); {万一}
ShowMessage(IntToStr(Length(str1))); {4; 这是字符串的长度}
......
名称 类型 说明
abort 函数 引起放弃的意外处理
abs 函数 绝对值函数
addexitproc 函数 将一过程添加到运行时库的结束过程表中
addr 函数 返回指定对象的地址
adjustlinebreaks 函数 将给定字符串的行分隔符调整为cr/lf序列
align 属性 使控件位于窗口某部分
alignment 属性 控件标签的文字位置
allocmem 函数 在堆栈上分配给定大小的块
allowgrayed 属性 允许一个灰度选择
ansicomparestr 函数 比较字符串(区分大小写)
ansicomparetext 函数 比较字符串(不区分大小写)
ansilowercase 函数 将字符转换为小写
ansiuppercase 函数 将字符转换为大写
append 函数 以附加的方式打开已有的文件
arctan 函数 余切函数
assignfile 函数 给文件变量赋一外部文件名
assigned 函数 测试函数或过程变量是否为空
autosize 属性 自动控制标签的大小
backgrounddi2001.jpg 属性 背景色
......
{ 函数 : RESULTSTRING = HexToBin(HEXSTRING)
{ 目的 : 把十六进制字符串转换为二进制字符串
{
{===============================================================}
{ 函数 : RESULTINTEGER = HexCharToInt(HEXCHAR)
{ 目的 : 转换一个十六进制字符为整数
{===============================================================}
{ 函数 : RESULTSTRING = HexCharToBin(HEXCHAR)
{ 目的 : 转换一个十六进制字符为二进制字符串
{===============================================================}
{ 函数 : RESULTINTEGER = Pow(BASE,POWER)
{ 目的 : 指数函数
{===============================================================}
{ 函数 : RESULTINTEGER = BinStrToInt(BINSTRING)
{ 目的 : 把二进制字符串转换为整数
{===============================================================}
{ 函数 : RESULTSTRING = DecodeSMS7Bit (PDUSTRING)
{ 目的 : 解码一个7-bit SMS (GSM 03.38) 为ASCII码
{===============================================================}
{ 函数 : RESULTSTRING = ReverseStr (SOURCESTRING)
{ 目的 : 反转一个字符串
{=== ......
一、类和对象
类是对象的类型,是创建对象的模板。一个类可以创建多个对象,而一个对象总是属于某个类。类具有内部的属性(状态)和行为(操作)。
对象是类的实例,具有区别于同类其他对象的属性集合。
对象的声明存放于堆栈,对象的引用存放于堆。
二、类的方法分类
1、 普通方法
不加任何修饰的方法为普通方法。普通方法必须调用类的实例进行访问。即必须
建类的对象,调用方式为:对象.方法,声明方式为:
procedure[function] 方法名(参数表)[:返回值];
2、 构造方法
构造方法用于创建类的实例,调用后返回类的句柄。构造方法可以有多个版本。声明方式是:
constructor 构造方法名(参数表);
3、 析构方法
析构方法用于销毁类的实例,一般不建议直接调用析构方法,而采用调用对象.Free的方式进行对象释放。声明方式为:
destructor 析构方法名(参数表);
4、 类方法
类方法属于一个类,在运行时即存在于内存中。可使用类.方法的方式进行调用,即不需要创建类的实例。声明方式是在普通方法前加class:
class procedure[func ......