cb 服务程序开发 好久没有写东西了,实在是太懒惰了,前一阵写了一个服务程序,觉得挺简单的,但是某日一位小弟却来求救,声称服务程序很灵异,为此研究了一下,果然有点意思:一、服务程序的创建:其实服务程序的开发很简单,只要选择菜单File-->New-->Other--->Service App
判断鼠标点击事件点下的是哪个键 常常在程序中处理鼠标事件,常常见到ssLeft判断鼠标按键,始终没太注意,今天收集了一下相关知识。 —— ssShift,判断当前是否键盘shift键被按下—— ssAlt,判断当前是否键盘Alt键被按下—— ssCtrl,判断当前是否键盘Ctrl键被按下—— ssLeft,判断当前是否鼠标左键被按下—— ssRight,判断当前是否鼠标右键被按下—— ssMiddle,判断当前是否鼠标中键被按下——
CB2007 中使用Microsoft Agent 控件 一、控件的安装:1. 一般windows 2000和XP中都已经预装了Agent组件,不过也有例外,我的系统里就没有,不过没关系,Agent控件的核心组建msagent.exe 找到后安装一个就好了。2. 不要忘了还需要安装acs文件。3.安装Agent控件: a>打开编译器,新建一个package工程 b>Component-〉Import Component->Import ActiveX Controls 下一步,从R
vc lib 转 bcb 今天用C++Builder6.0 调用三方lib文件时,编译的时候出现如下错误:“contains invalid OMF record, type 0x21 (possibly COFF)”才知道这个lib文件是别人用VC做的,要在C++Builder下面使用的,必须转换成CB格式的这才想起调用CB安装目录下的coff2omf工具;需要cmd 操作,忘了一通了,查查文档,转换成功,现在记录一下。先把需要转换的VC的ml.l
在回调函数中调用vcl事件 近日整理以前的工程,作了一个IndyThreadComponent控件的管理,为了在启动线程时执行不同的功能,要对线程的OnRun事件进行调整,因此想到用回调函输来处理;1. 首先,先定义了一个与IndyThreadComponent控件OnRun事件相同的函数体 void __fastcall TMyForm::MyThrd(TIdThreadComponent *Sender){ EnterCriticalSection(&cs2
sqlserver2000 的timestamp原来可以转成bigint型 为了实现对数据库变化的监控想到了可以用一下sqlserver 的timestamp类型,大致的知道一些用法,没想到使用起来却是一筹莫展。sqlserver帮助文档中说:timestamp用于表示SQL Server在一行上的活动顺序,按二进制格式以递增的数字来表示。当表中的行发生变动时,用从@@DBTS函数获得的当前数据库的时间戳值来更新时间戳。timestamp数据与插入或修改数据的日期和时间无关。若要自动记录表中数据更改的时间,使用 datetime 或
ListView 的按列排序 一个非常常见的功能,点击列表头排序;1. 先定义两个变量 int ColumnToSort; bool desc;2. 设置ListView的ColumnClick属性为true;3. 处理OnColumnClick事件void __fastcall TFMain::ListView1ColumnClick(TObject *Sender, TListColumn *Column){ ColumnToSort=Column->Index; if (Column->Tag==0) {
内存共享实现程序间的互斥运行 原理很简单,在虚拟内存中按名称共享一个数据,通过对该数据的验证实现程序间的互斥。主要用到的方法: 1. CreateFileMapping(...); 2. MapViewOfFile(...); 3. OpenFileMapping(...); 4. CloseHandle(...);用法bcb help中就有例程,这里就不浪费唇舌了,只是记下来备用。 实现代码
TListString 分隔字符串 代码顺序很关键 转做builder以来常常会用到TListString 这个控件来完成字符分隔的工作,用法很简单,很方便,但是今天的这段代码却没有达到预期的效果。 Stirng str = "a,b,c,d;e,f,g;" TStringList * lst = new TStringList(); lst->DelimitedText = str; lst->Delimiter = ';'; for(int i =0;i<lst->Count;i+
bcb combobox 加载text 和value 今天用到的,积累下来供下次使用。一直想实现类似网页中select的那种功能,显示一个值同时对应一个隐含的值。要用到combobox的一个方法:virtual int __fastcall AddObject(const AnsiString S, System::TObject* AObject)也就是说你可以将想要加载到ComboBox的对象转成一个Object。举例说明: 我想要为ComboBox1加载:<b
RzPageCtrl 的用法 好久没有写东西了,今天被一个小小的问题折磨了半天,faint!原本想要做一个动态生成页面的程序结果发现生成后激活的标签页很难分辨出来,想要改变当前页的颜色。。。。悲剧了。。。。不过总算解决了,记下来,省得下次再掉进同一口井里。 事实是RzPagectrl的当前页标签的颜色正是它自身的颜色,因此要想改变当前标签的颜色只需设置RzPageCtrl的Color属性,同时在TabColors中设置shadow的颜色为标签设置阴影颜色即可获得想要的效果。<b
邮件蠕虫与垃圾邮件技术的融合 邮件蠕虫与垃圾邮件技术的融合 作者:pkxp/CVC日期:2004-03-05 背景 病毒,DDOS,垃圾邮件已经成为当今网络安全的三大技术难题。反垃圾邮件之所以如此困难,是因为(E)SMTP协议本身的缺陷。正如DDOS,是利用TCP/IP协议固有的缺陷一样。需要说明的是,邮件蠕虫为了传播自身而发送的邮件,也属于垃圾邮件的一种。 2003年出现的Sob
BCB通用函數庫 今天浏览网页又有新收获获得计算机名称AnsiString GetComputerName() { char name[MAX_COMPUTERNAME_LENGTH + 1]; DWORD size = MAX_COMPUTERNAME_LENGTH + 1; if(GetComputerName(name,&size)) ret
bcb AnsiString 型的内存释放 最近做一个项目,在线程中用到了一个大约5k大小的string型变量,发现内存不断增长,这种现象应该会很常见,我们通常都采用str=""的方法给str置空,而实际上这种方法只是将结束符"/0"放到最前面,并未将内存清空并释放,下次使用str时会在"/0"前插入赋的值,这样str占的空间就不断增长,要想真正的释放str占用的空间,需要加入以下代码:str.delete(0,str.Length()
bcb 在ListView中显示图标 一、 在列标题上显示图标 1.为smallimage关联imagelist; 2.在columns中选中要显示图标的列,在imageindex属性中设置imagelist的值即可。二、在第一列中显示图标 1.为stateimage关联imagelist; 2.加载item时设置imageindex的值。 TListItem
bcb中寻找本机或者服务器上活动的SQLServer 又发现点有用的东西,继续收集。。。。 #include //包含头文件Variant SQLServer; Variant Serverlist; int i,nServers; String aRetValue; try { SQLServer=CreateOleObject("SQLDMO.Application"); } catch(...