分享
 
 
 

ZqLib1.1库的介绍

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

ZqLib1.1库的介绍

前不久,我整理了一下我以前写程序时经常用到的一些类似与例程性质的小程序,说大也不大,但许多程序经常都要用到,所以我就抽了一点时间将其整理了一下,放在这儿并美其名曰zqLib1.1。如果好好的利用它,的确可以减少许多的程序代码,我有过这样的经历。zqLib1.1是一个只适合与BCB的程序库,我在WinXP+BCB6中调试通过的,如果你对这个库该兴趣的话,不妨试试。zqLib库主要由许多函数构成,我将其按功能分类,没有按照类的方式分,我觉得单个的函数要比类更好使用,再加上这些功能也不好形成类。

下表就是zqLib库的分类 http://www.zccfamily.com/zqget/zqLib/zqLib.asp

单元名称

函数功能

zqStrings

字符串处理相关函数,弥补AnsiString对象的不足

zqWindows

与系统相关的函数,如:重建系统图标缓存,判当前系统是否为Win98等

zqFiles

与文件名,路径处理相关的函数

zqGraphics

与图像,颜色,字体相关函数

zqRegistrys

与注册表处理相关的函数

zqVCLCtrl

VCL控件的辅助函数

zqDate

与日期相关的函数,这是以类的方式提供的

zqStrings

int countWords(AnsiString Str,AnsiString Delimiters=" ");

计算字符串Str以分隔符Delimiters分割符的单词数,如countWords(“hello,world”,”,”)函数返回2,如果不指定Delimiters分割符,则默认分割符为空格。

AnsiString getSubStr(AnsiString Str,int Start,AnsiString Delimiter=" ");

该函数的功能是取其字符串Str按分隔符Delimiters分割后的第Start个子串,如getSubStr(“I am a boy!”,1)的返回值为am,注意数字是以0作为起始数字的。

AnsiString getFileNameWithoutExt(AnsiString fileName);

C++Builder6提供了许多以Extract开头的函数,这对于处理文件名,路径非常有用,但我始终没有发现如果取得不带扩展名的文件名,所以只要自己写了一个,其实根据函数的名称就可以看出它的功能。如:getFileNameWithoutExt(“C:\\test.txt”)函数的返回值为test。

AnsiString extDoWith(AnsiString fileName,AnsiString Ext);

在保存文件时通常需要处理用户输入的文件名是否带有扩展名,如用户输入fileName=”C:\test”,如果这个文件类型为TXT的话,这样调用函数extDoWith(fileName,”txt”)的返回值为C:\test.txt。

zqWindows

void ReBuildIconCache();

根据该函数的名字大概就可以看出该函数的功能,它的功能就是重建系统图标缓存,这个有什么用啊,也许有人会问?这用处可大着呢,当你的程序改变了系统的某些设置,如:系统颜色,当可能系统还来不及更新,于是需要用户按F5键刷新,但你的程序总不至于运行后还需要用户按F5键来看结果吧,这时ReBuildIconCache()函数就会帮你的大忙.

bool isWin98();

即使微软一直在宣称“统一的Win32平台“,但我感觉感觉它始终只是口号而已,因为我很少写出一套不需要针对不同Windows版本进行更正的软件,所以我提供的函数isWin98()用来判断是否为Win98系统,因为Win98与以后的Windows系统往往有很多地方不同,需要分别处理.

void Delay(DWORD msec);

Windows程序员大都用过Sleep函数,它的功能就是延迟时间,但它却有一个缺陷,那就是一旦调用了该函数,那么程序的线程就会一直等到Sleep函数的返回,也就是说在这段时间中,程序将无法处理窗口消息,于是不会对用户的操作作出相应,但有很多时候我们需要一个这样的函数,它既能起到延迟时间的作用,又能处理窗口消息,这是Delay函数就是一个选择。

zqFiles

//文件关联

AnsiString getAssociatedExec(AnsiString fileExt,AnsiString &fileDesc,AnsiString &MIMEType);

bool setAssociatedExec(AnsiString fileExt,AnsiString filetype,AnsiString FileDesc,AnsiString MIMEType,AnsiString execName);

文件关联在程序中起着很重要的角色,有很多的程序具有辨别文件类型的能力,如Flash认识SWF类型的文件,这是如何完成的呢,setAssociatedExec函数的功能就是完成文件与相应程序的关联, getAssociatedExec这个函数的作用是取得该文件类型相关联的应用程序。

AnsiString GetSystemPath();

AnsiString GetWindowsPath();

AnsiString GetTemporaryPath();

Win32 API中有类似的函数,而我为什么还要提供这些函数呢,很简单,就是调用这些函数比调用API函数更方便,从函数的名称就应该知道它的功能了。

//处理文件名及路径

AnsiString getShortFilenName(AnsiString fileName);

AnsiString getParentPath(AnsiString Path);

AnsiString getLastDirectoryName(AnsiString Path);

//这三个函数的作用分别时获取文件名的短文件名,获取路径Path的父路径,获取路径Path的最后一个目录名

getLastDirectoryName(“hello\\world”)返回world字符串

getParentPath(“Software\\ZQGet\\Hello\\World”)返回Software\ZQGet\Hello\字符串

getShortFileName(“E:\\Resource\\程序设计\\Utility\\新建 文本文档.txt”)返回E:\Resource\程序设计\Utility\新建问~1.txt字符串,这个函数的主要目的是为了兼容8.3格式的文件名

zqGraphics

AnsiString ColorToRGBString(TColor Color);

TColor RGBStringToColor(AnsiString strRGB);

应用程序很多时候需要存贮颜色信息,将颜色信息转换为字符串进行存储就是一个不错的办法,这儿的两个函数就能满足这种需要,ColorToRGBString的作用是将TColor类型的颜色转换为红绿蓝三原色十进制的字符串表示,如:函数ColorToRGBString(clRed)返回”255 0 0”,

RGBStringToColor(“0 255 0”)返回clGreen值。

void BMPToJPEG(AnsiString bmpFile, AnsiString jpegFile);

void JPEGToBMP(AnsiString jpegFile, AnsiString bmpFile);

从它们的名字都可以看出它们的功能,BMP与JPG类型的图片进行转换.

//设置桌布墙纸

void setWallPaper(AnsiString wallPaper,int wallPaperStyle);

该函数的作用是改变桌面的墙纸,它会根据wallPaperStyle墙纸样式设置墙纸

//Font对象与字符串的转换,这样的目的便于将目前的字体属性保存起来,以后要用到该字体属性的话可以在利用StringToFont将字体字符串转化为Tfont对像在程序中使用。注意FontToString(TFont * font)函数只保存字体对象的字体名(Name),大小(Size),样式(下划线,加粗,删除线,斜体),颜色属性,其它的字体属性将无法保存。

AnsiString FontToString(TFont * font)

void StringToFont(AnsiString fontStr,TFont * font);

//字体TLogFont结构与字符串的转化

AnsiString LogFontToString(TLogFont logFont);

void StringToLogFont(AnsiString fontStr,TLogFont * logFont);

上面有了Tfont对象与字符串的转换,而在Win32的程序中我们很多时候不是用的Tfont对象而是使用的TlogFont字体结构来表示字体,如果要保存这些信息的话就可以利用这两个函数来进行相互的转换

//将鼠标指针转化为图标

HICON CursorToIcon(HCURSOR hCursor);

zqRegistrys

AnsiString getKeyValue(AnsiString RegPath,AnsiString Key,bool isAllUsers);

void setKeyValue(AnsiString RegPath,AnsiString Key, AnsiString Value,bool isAllUsers);

这两个函数获取或设置RegPath路径下Key的字符串值

DWORD getDWORD(AnsiString RegPath,AnsiString Key,bool isAllUsers);

void setDWORD(AnsiString RegPath,AnsiString Key,DWORD Dword,bool isAllUsers);

这两个函数获取或设置RegPath路径下Key的DWORD值

void readSection(AnsiString Section,TStrings* Strings,bool isAllUsers);

读取Section下所有的Key值将其存入Strings中

void deleteKey(AnsiString Section,AnsiString Key,bool isAllUsers);

删除注册表中的键值Key

void deleteSection(AnsiString regPath,bool isAllUsers);

删除注册表中的regPath指定的项

int getSubKeyNum(AnsiString RegPath,bool isAllUsers);

获取注册表中regPath项的子项目数

int getValueNum(AnsiString RegPath,bool isAllUsers);

获取注册表中某一项中的键数

zqVCLCtrl

//设置VCL控件颜色

void setCtrlColor(TControl *Ctrl,TColor Color);

设置Ctrl控件的颜色为Color

void setCtrlChildsColor(TControl *Ctrl,TColor Color);

设置Ctrl控件包含所有控件的颜色为Color值,这个函数对于设置应用程序的界面非常有用。

void setClassCtrlColor(TControl *Ctrl,TColor Color);

设置Ctrl控件下包括Ctrl控件的颜色值

//设置VCL控件Enabled属性

void setCtrlEnable(TControl *Ctrl,bool Enable);

设置Ctrl包括所有Ctrl下的所有控件的Enabled属性为Enable

void setCtrlChildsEnable(TControl *Ctrl,bool Enable);

只设置Ctrl包含的所有控件的Enabled属性为Enable

zqDate

这个文件提供了一个称作zqDate的类,你可以通过该类获取目前系统的时间,该类提供了如下方法:

int getYear(); //获取系统当前日期的年份

int getMonth();//获取系统当前日期的月份

int getDay();//获取系统当前日期的日

int getHour();//获取系统当前时间的小时

int getMinute();//获取系统当前时间的分钟

int getSecond();//获取系统当前时间的秒

int getDayOfWeek();//获取系统当前的星期

int getMiliSecond();//获取系统当前时间的毫秒数

在使用时需要引入zqDate.h头文件,下面语句获取系统当前日期的年份

//获取系统当前日期的年份

int Year=zqDate().getYear();

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有