----赖格英-----

记忆不好了,记录工作中的点点滴滴....

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  编程语言

上一页 1 ··· 3 4 5 6 7 8 下一页

摘要:在编写Delphi的应用程序中,常常涉及对其它Windows应用程序的操作。例如,在数据库的管理系统中,财务人员需要使用计算器,即可调用Windows内含的计算器功能,若每次使用,均通过“开始/程序/附件/计算器”来打开计算器,显然是非常繁琐的,当然可以考虑在桌面上建立一“计算器”的快捷方式,且定义一热键,需要使用计算器时,就按下这个热键来打开“计算器”。但由于“计算器”是一个“非模式”窗口程序,即每运行一次计算器,就会打开一个“计算器”窗口,这样的结果是桌面上出现了几十个“计算器”,不仅大量增加了系统内存的开销,而且也不方便用户的操作。在Delphi中可较轻易地控制,效果非常完美。下面就两个 阅读全文
posted @ 2013-08-18 15:02 向北方 阅读(2029) 评论(0) 推荐(0) 编辑

摘要:看你要做什么,比较现在网络很流行的QQ、MSN这些软件都屏蔽了,你可能还可以访问一些小软件的这些控制,思路及方案如下(API函数自己去百度查一下)1.得到你要这个窗口的句柄 使用FindWindow2.利用枚举函数EnumChildWindows把这个窗口里的所有文本框、按钮找到,并得到其句柄,EnumChildWindows需要一个回调函数,你可以在回调函数中把模拟输入,单击双击这些操作加上去3.在回调函数里,其实就是向你找到的按钮或文本框发送消息消息说明:比如得到文本框中的文字消息:WM_GETTEXT设置文本框的文字消息:WM_SETTEXT鼠标左键单击WM_LBUTTONDOWN必须与 阅读全文
posted @ 2013-08-18 14:55 向北方 阅读(4407) 评论(0) 推荐(0) 编辑

摘要:向其他程序发送模拟按键:1、用keybd_event:varh : THandle;beginh := FindWindow('TFitForm', '1stOpt - [Untitled1]');SetForegroundWindow(h);keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);keybd_event(VK_F9, MapVirtualKey(VK_F9, 0), 0, 0);keybd_event(VK_F9, MapVirtualKey(VK_F9, 0), KEYEVENT 阅读全文
posted @ 2013-08-18 14:47 向北方 阅读(10645) 评论(0) 推荐(0) 编辑

摘要:回调函数一般是按照调用者的要求定义好参数和返回值的类型,你向调用者提供你的回调函数的入口地址,然后调用者有什么事件发生的时候就可以随时按照你提供的地址调用这个函数通知你,并按照预先规定好的形式传递参数。所以很多人打比方,说回调函数还真有点像您随身带的BP机:告诉别人号码,在它有事情时Call您!所以一个回调函数写出来之后,一定有个注册的动作,就是告诉调用者,你怎么样找到我写的函数。某些Windows API 函数会要求以回调函数地址作为其参数之一,例如SetTimer 、LineDDA 、EnumObjects,以及我们下面要用到的EnumWindows。在Delphi里声明一个回调函数的格式 阅读全文
posted @ 2013-08-18 14:46 向北方 阅读(2137) 评论(0) 推荐(0) 编辑

摘要:很多情况下,我们需要在程序中实现这样的功能:在自编写的程序里控制另外一软件中的某个按钮被按下。比如,有一天你在聊QQ时觉得烦了,那么就想写程序来帮你按下“发送”按钮,省得你自己一次次动手了。那么,这个想法怎样才能实现呢?其实做法很简单,它只用两条Windows消息就能实现了。(当然,前提是你必须知道那个按钮的handle。我想这个对一般程序员来说简直是小菜一碟)这两条消息分别是:WM_LBUTTONDOWN和WM_LBUTTONUP。下面我给出一个简单的实例说明用法:procedure TForm1.Button1Click(Sender: TObject);var btnHandle: HW 阅读全文
posted @ 2013-08-18 14:36 向北方 阅读(482) 评论(0) 推荐(0) 编辑

摘要:If ReadFile(0, "Test1.txt") ; if the file could be read, we continue... If CreateFile(1, "Test2.txt") While Eof(0) = 0 ; loop as long the 'end of file' isn't reached Astring$=ReadString(0) A$=StringField(Astring$,1,",") B$=StringField(Astring$,2,"," 阅读全文
posted @ 2013-08-16 16:22 向北方 阅读(487) 评论(0) 推荐(0) 编辑

摘要:在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/ 静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个 delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初 阅读全文
posted @ 2013-08-14 09:13 向北方 阅读(277) 评论(0) 推荐(0) 编辑

摘要:rad studio 2007网络下载点:http://bbs.hnhyxy.com/bcb/CodeGear.RAD.Studio.2007.rarhttp://andy.jgknet.de/blog/archives/69-Inofficial-RAD-Studio-patch.html 补丁,可以修补右键菜单的问题。http://andy.jgknet.de/radpatch/RADStudio2007Patch.zip最新的SP3速包下载4.2GB官方版 http://altd.codegear.com/akdlm/download/radstudio2007/CodeGearRADS 阅读全文
posted @ 2013-08-13 23:19 向北方 阅读(604) 评论(0) 推荐(0) 编辑

摘要:1. C++ Builder 网上资源 C++ Builder 研究 http://www.ccrun.com/ C++ Builder 程序员 http://mybcb.diy.myrice.com/ 电脑学习 C++ Builder 版块 http://www.itcomputer.com.cn/Programs/C/CB/ c++ Builder 快捷键大全: http://www.itcomputer.com.cn/Programs/C/CB/200512/11211.html C++ Builder IDE 使用技巧: http://www.itcomputer.com.cn/Pro 阅读全文
posted @ 2013-08-13 22:51 向北方 阅读(1120) 评论(0) 推荐(0) 编辑

摘要:先声明: 不要把我说的这些个东西当作教科书, 这都是自己的浅见; 同时希望得到指正.Delphi 的指针分为 "类型指针" 和 "无类型指针" 两类. Delphi 中的类型, 常用的也得有几百个, 我们可以给每种类型定义相应的类型指针. 其实 Delphi 已经为很多类型预定义了指针, 譬如数据类型: Integer 有对应的 PInteger; Char 有对应的 PChar; string 有对应的 PString; 再譬如: TPoint 有对应的 PPoint; TColor 有对应的 PColor 等等.另外, 指针也可以有指针, 譬如: P 阅读全文
posted @ 2013-08-12 22:49 向北方 阅读(452) 评论(0) 推荐(0) 编辑

摘要:引数:1. Text:要显示的讯息2. Caption:讯息视窗的标题列文字3. Flags:讯息旗标 3.1. 可指定讯息视窗上的图示 3.2. 可指定讯息视窗出现的按钮 3.3. 可指定预设Focus在哪一个按钮 3.4. 可指定是否 Modal 3.5. 其他引数说明:Text、Caption 引数为 PCahr 型态,字串型态的变数可用 PChar()转换,若直接传入一个字串的话,就不用转型。例如:var s: string;....s := '存档失败'; Application.MessageBox(PChar(s), '错误', MB_ICONER 阅读全文
posted @ 2013-08-07 22:53 向北方 阅读(6325) 评论(0) 推荐(0) 编辑

摘要:vars: string;begin//指令类型 types := Format('最大整数是: %d; 最小整数是: %d',[MaxInt,Low(Integer)]);//返回: 最大整数是: 2147483647; 最小整数是: -2147483648{ 提示: 格式指令必须以 % 开始, 不区分大小写, %d 代表一个整数; 第二个参数是一个 变体数组 }s := Format('最大的无负号整数是: %u',[High(Cardinal)]);//返回: 最大的无负号整数是: 4294967295{ %u表示一个无负号整数 }s := Format( 阅读全文
posted @ 2013-08-05 12:47 向北方 阅读(4491) 评论(0) 推荐(0) 编辑

摘要:1:指针的赋值。type RTestInfo = recordAge:Integer;end;PtestInfo = ^ RtestInfo;var Test1,Test2:PtestInfo;BeginNew(Test1);New(Test2);Test1^.Age:=12;Test2:=Test1;Application.MessageBox(Pchar(IntToStr(Test2^.Age)),'测试',MB_OK);Test1^.Age:=13;Application.MessageBox(Pchar(IntToStr(Test2^.Age)),'测试' 阅读全文
posted @ 2013-08-05 10:03 向北方 阅读(418) 评论(0) 推荐(0) 编辑

摘要:一、指针:指向一个内存地址的变量或参数。 二、定义指针的方式如下: P: Pointer; //定义了可以指向任何类型的指针,Pointer 为无类型指针; Q, R: ^TType; //定义了指向 TType 类型的两个指针,TType 可是是各种 //基本类型或自己定义的各种类型,也可以如下定义: // type PType = ^TType; // var Q, R: PType; 三、指针的使用: P: Pointer; Q, R: ^TType; A: TType; Q:= R; //相同类型可以赋值 P:= R; //可... 阅读全文
posted @ 2013-08-05 08:10 向北方 阅读(3266) 评论(0) 推荐(0) 编辑

摘要:DELPHI指针的使用大家都认为,C语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是C语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有C语言的指针才能算指针。Basic不支持指针,在此不论。其实,Pascal语言本身也是支持指针的。从最初的Pascal发展至今的Object Pascal,可以说在指针运用上,丝毫不会逊色于C语言的指针。 以下内容分为八部分,分别是 一、类型指针的定义 二、无类型指针的定义 三、指针的解除引用 四、取地址(指针赋值) 五、指针运算 六、动态内存分配 七、字符数组的运算 八、函数指针 一、类型指针的定义。对于指向特 阅读全文
posted @ 2013-08-05 08:00 向北方 阅读(16746) 评论(0) 推荐(0) 编辑

摘要:1 procedure TForm1.Button1Click(Sender: TObject); 2 var 3 FileN:string; 4 begin 5 if self.OpenDialog1.Execute then 6 begin 7 filen:=UTF8ToAnsi(self.OpenDialog1.FileName); 8 self.Memo1.Lines.SaveToFile(FileN); 9 end;10 end; 阅读全文
posted @ 2013-07-27 18:27 向北方 阅读(948) 评论(0) 推荐(0) 编辑

摘要:1、在“工程”菜单下,单击“工程选项”,原始状态的界面为:2、将界面中的两个选项修改为如下:3、按“确定”按钮,即可编译以后的可执行程序就将又原来的14m变为1.66m。1.选择:Project --> Project Options --> Compiler Options --> Code Generation --> Unit Style --> Smart Linkable(-CX) 2.取消选择:Project --> Project Options --> Compiler Options --> Linking --> Deb 阅读全文
posted @ 2013-07-27 17:32 向北方 阅读(751) 评论(0) 推荐(0) 编辑

摘要:Delphi语言,无论Delphi7、Delphi2007或者Delphi XE2或3,无需安装其它附加的部件,就可以实现DBF文件的打开及相关操作,网络上很多要用到什么ADO引擎的,其实未必,只有安装的Delphi有BDE即可。 实例操作为例:1、新添一个Tform,在上面添加Table、Datasource和Datagrid等组件,见下图:2、设置Table1的DatabaseName属性为dBase files,Datasource1的DataSet属性为Table1,DataGrid1的DataSource为DataSource13、在Button1的单击事件中添加如下代码:proc. 阅读全文
posted @ 2013-07-26 19:37 向北方 阅读(4533) 评论(0) 推荐(0) 编辑

摘要:下载地址:http://www.lazarus.freepascal.org/中文社区:http://www.fpccn.com/该软件有几点如下特征:1、跨平台、体积小(只有100多M)2、与Delphi非常兼容3、编译以后的体积大,不编任何代码,编译完成的可执行程序都有10多M;4、与中文兼容性不是很好,如果不在软件设置中设置为“中文”,其它语言的编译结果对文件路径等包含中文字符的字符串不能识别;5、编译与执行的速度不如Delphi,另外,在界面设计和代码编制过程中,经常会出现一些bug。6、目前的delphi也有跨平台的功能,故还是Delphi比较成熟。 阅读全文
posted @ 2013-07-22 22:58 向北方 阅读(1485) 评论(0) 推荐(0) 编辑

摘要:1、DLL简介 DLL是Dynamic-Link Libraries(动态链接库)的缩写,库里面是一些可执行的模块以及资源(如位图、图标等)。可以认为DLL和EXE基本上是一回事,只是DLL不能直接执行,而必须由应用程序或者其他DLL调用。DLL为应用程序间的资源共享提供了方便,同时也是多语言混合编程的重要手段。由此可见学习使用DLL是Windows程序员必须掌握的一项重要技术。 2、如何调用DLL 在Delphi中有两种方法调用DLL中的函数和过程,即外部声明或者动态加载。 外部声明 在Delphi中外部声明是访问外部例程最容易和最常用的方式,有两种声明方式:通过名字、... 阅读全文
posted @ 2013-07-22 22:22 向北方 阅读(627) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 下一页