随笔分类 -  Api

WINDOWS API函数
摘要:1)取反使数字1成为0, 0成为1。例如:NOT 0111(十进制 7) = 1000 (十进制 8)2)OR处理两个长度相同的二进制数,两个相应的二进位中只要有一个为1,该位的结果值为1。例如0101 (十进制 5) OR 0011 (十进制 3) = 0111 (十进制 7)3)XOR对等长二进... 阅读全文
posted @ 2015-05-14 23:07 delphi中间件 阅读(349) 评论(0) 推荐(0) 编辑
摘要:usesWinapi.WinSpool;procedure TForm1.Button1Click(Sender: TObject);var pi2: PRINTER_INFO_2; hPrinter: THandle; Jobs: array [0 .. 1000] of TJobInfo2... 阅读全文
posted @ 2015-04-22 16:01 delphi中间件 阅读(1937) 评论(0) 推荐(0) 编辑
摘要:unit Unit2; interface uses System.Classes, Windows, Messages; const WM_DO = WM_USER + 1; type TDemoThread = class(TThread) private { Private de... 阅读全文
posted @ 2015-01-29 11:58 delphi中间件 阅读(699) 评论(0) 推荐(0) 编辑
摘要:制作报表的html模板报表模板 公司名称 联系人 产品名称 产品名称 Exotic Liquids Charlotte Cooper Chai 18.0000 Exotic Liquids Charlotte Cooper Chang 19.0000浏览器打开... 阅读全文
posted @ 2014-07-22 09:38 delphi中间件 阅读(545) 评论(0) 推荐(0) 编辑
摘要:unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, ... 阅读全文
posted @ 2014-07-14 21:57 delphi中间件 阅读(917) 评论(0) 推荐(0) 编辑
摘要:function GetSelfPath: string;var ModuleName: string; i: Integer;begin SetLength(ModuleName, 255); GetModuleFileName(HInstance, PChar(ModuleName), Length(ModuleName)); i := LastDelimiter('\', ModuleName); Result := Copy(ModuleName, 1, i);end; 阅读全文
posted @ 2014-04-02 16:17 delphi中间件 阅读(2148) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2014-03-28 15:18 delphi中间件 阅读(1382) 评论(0) 推荐(0) 编辑
摘要:unit untFoodCard; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Fo 阅读全文
posted @ 2014-03-24 17:12 delphi中间件 阅读(924) 评论(0) 推荐(0) 编辑
摘要:全局对象在什么时候创建也是有讲究的,如果在调用之前尚未创建肯定会报错。那么下面通过调用函数间接调用全局对象的方法就不会有任何问题了。var FUserInfo: TUserInfo = nil;function UserInfo: TUserInfo;begin if not Assigned(FUserInfo) then FUserInfo := TUserInfo.Create; Result := FUserInfo;end; 阅读全文
posted @ 2014-03-04 15:15 delphi中间件 阅读(505) 评论(0) 推荐(0) 编辑
摘要:前提条件:先要安装好EXCEL软件。程序中经常要用到导入excel数据的功能。其实通过ole操作excel就简单的几行代码,但记性不好,经常要用经常要找,还是作篇笔记吧。var ExcelApp: OleVariant; WorkBook: OleVariant; RowCount: Integer; iRow: Integer;try ExcelApp := CreateOleObject('Excel.Application'); except SysFunObj.ShowInfo('没有安装EXCEL!'); exit; ... 阅读全文
posted @ 2014-03-04 15:04 delphi中间件 阅读(618) 评论(0) 推荐(0) 编辑
摘要:POS小票打印机分为热敏和针式俩种。打印纸的宽度分为58毫米、76毫米和80毫米三种。打印接口分为:串口、并口、USB和网口(以太网)。热敏打印机速度较快,打印的时候噪音少,针打可以使用多联纸自动复印。热敏打印机价格一般比较便宜,不需要频繁地更换色带。并口打印机,可直接"端口输出",不需要安装打印机的驱动程序。几乎所有的POS小票打印机都可以兼容EPSON的ESC POS打印机指令。const // 末尾走纸几行 c_run_paper_lines = 6; // ESC指令 开钱箱 c_OpenMoneyBoxCommand = CHR(27) + CHR(112) + 阅读全文
posted @ 2014-03-04 14:57 delphi中间件 阅读(18699) 评论(0) 推荐(1) 编辑
摘要:NameSpace = "http://schemas.microsoft.com/cdo/configuration/"Set Email = CreateObject("CDO.Message")Email.From = "hnxxcxg@sohu.com"'Email.To ="hnxxcxg.ca71ad8@m.yinxiang.com"Email.To = "254072148@qq.com"Email.Subject = "say hello"Email. 阅读全文
posted @ 2014-02-11 16:21 delphi中间件 阅读(716) 评论(0) 推荐(0) 编辑
摘要:每个权限项用一个整型表示 如:插入权限用 1 ; 修改权限用 2 ; 删除权限用 4 ; 导入权限用 8 ; 导出权限用 16 ;更多权限…… 32,64,128 …… 给用户分配权限时,只需把用户获得的权限值累加就可以了。 应用时使用“与”操作来识别哪个用户是否拥有相应的权限。 例子 if 用户的权限总值 and 当前操作所需的权限 = 当前操作所需的权限 then showmessage('有权限') else showmessage('无权限'); 运用此法,可简单的设计出复杂的权限系统。 道理很简单,and 是以二进制按位“与”操作的。其真值表是: 1 阅读全文
posted @ 2014-01-20 10:20 delphi中间件 阅读(1070) 评论(0) 推荐(0) 编辑
摘要:虽说报表多又难做,做报表相当容易。做报表也可以偷懒的,超级实用又省事。只需要做一个报表,这个报表里面包括几乎所有的数据字段,然后将查询到的数据导出到excel中,利用excel自带的“数据透视”功能,客户只需要点几下鼠标就可以生成自己所需要的报表。通过这种方法,一个报表可以产生n个报表。通过几行代码可以操纵excel打开“数据透视”功能。冒必要在自己的程序里面做数据透视功能了,要做到excel数据透视那种功能效果,还是要花费不少时间的。function GetExcelCol(iCol: integer): string;begin Result := ''; case iCo 阅读全文
posted @ 2014-01-10 17:02 delphi中间件 阅读(933) 评论(0) 推荐(0) 编辑
摘要:指针其实就是一个整数,这个整数表示一个内存的地址。句柄就是指针(句柄是WINDOWS的安全指针),因此句柄也是一个整数。传指针就是传递一个整数。在同一个进程中,传一个对象的指针就等于传一个对象。光说理论无用,直接上码:代码一:procedure TForm1.Button1Click(Sender: TObject);var i: THandle;begin i := self.Handle; TForm1(FindControl(i)).Caption := 'test';end;代码二:procedure TForm1.Button1Click(Sender: TObjec 阅读全文
posted @ 2013-08-06 21:00 delphi中间件 阅读(1185) 评论(1) 推荐(1) 编辑
摘要:现在的DELPHI因为支持泛型的语法,所以也能支持模板编程了。// 标准模板unit UntPools;interfaceuses Classes, SysUtils, UntThreadTimer;type { 这是一个对像池, 可以池化所有 TObject 对像 } { 用法: 在一个全局的地方定义 var Pooler: TObjectPool; 用到的地方 obj := Pooler.LockObject as Txxx; try finally Pooler.UnlockObject; end; 初始化 initialization Pool... 阅读全文
posted @ 2013-07-15 17:43 delphi中间件 阅读(4503) 评论(2) 推荐(2) 编辑
摘要:pci转并口卡模拟出来的并口并不能完全等同于主板上真正的并口。真正的并口打印的时候可以“直接瓶口输出”打印,而不需要安装打印驱动程序。这个模拟出来的并口却不能使用“直接瓶口输出”(打印机不打印,程序卡死)。怎么办:1.在电脑的PCI插槽上插好PCI转并口卡2.安装PCI转并口卡的驱动程序3.连接好小票打印机的打印线,并打开打印机的电源开关4.安装小票打印机的驱动程序,设置打印机的端口号为LPT3(PCI转并口卡模拟出来的端口号)测试可以打印“打印测试页”。5.修改client.ini文件更改里面的配置项,设置porttype=usb 阅读全文
posted @ 2013-07-02 16:52 delphi中间件 阅读(1891) 评论(0) 推荐(0) 编辑
摘要:functionHexStrToStream(AHexStr:String;AStream:TStream):Boolean;variLen:Integer;Buff:String;P1,P2:PChar;B:Byte;beginResult:=False;ifNotAssigned(AStream)thenExit;iLen:=Length(AHexStr);ifiLen=0thenExit;if(iLenmod2)<>0thenExit;SetString(Buff,Nil,iLendiv2);P1:=PChar(AHexStr);P2:=PChar(Buff);whileiL 阅读全文
posted @ 2013-04-27 17:05 delphi中间件 阅读(550) 评论(0) 推荐(0) 编辑
摘要:functionStreamToHexStr(AStream:TStream):String;constHexChars:array[0..15]ofChar='0123456789ABCDEF';vari,len:Integer;beginlen:=AStream.Size-AStream.Position;SetLength(Result,len*2);AStream.Read(Pointer(Result)^,len);fori:=lendownto1dobeginResult[i*2]:=HexChars[Byte(Result[i])and$0F];Result[i* 阅读全文
posted @ 2013-04-27 17:04 delphi中间件 阅读(549) 评论(0) 推荐(0) 编辑
摘要:unit MD5; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls; typeMD5Count = array [0 .. 1] of 阅读全文
posted @ 2013-04-03 16:13 delphi中间件 阅读(753) 评论(0) 推荐(0) 编辑