摘要: 在进销存软件中经常会用到输入货品信息,查询相关报表等数据......按以往的程序,我全部是采用的showmodal模式,这样就极不方便,必须关闭了这个窗口后,才可以打开另一个窗口。于是想使用多个窗口同时显示在屏幕上,可以点击窗口切换。按常规换成了show模式,结果一测试,发现一个窗口出现了,另一个窗口就没有了,或者是跑到主窗口的背后去了。一点也不方便。在网上转了一天,今天终于发现在窗口的FormStyle属性,设置FormStyle:=fsStayOnTop,然后再使用: if not Assigned(Form2) then begin Form2 := TForm2.Create(sel. 阅读全文
posted @ 2011-11-03 23:34 bingege 阅读(243) 评论(0) 推荐(0) 编辑
摘要: unit HKProc; interface uses Windows, Messages,Dialogs,iniFiles,SysUtils; var hNextHookProc: HHook; procSaveExit: Pointer; function CBTProc(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; function EnableHotKeyHook: BOOL; export; function DisableHotKe... 阅读全文
posted @ 2011-10-25 09:10 bingege 阅读(668) 评论(0) 推荐(0) 编辑
摘要: DELPHI中MDI子窗口的关闭和打开Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会发觉该子窗口只是最小化,而不是你预期的那样被关闭。解决办法是在子窗口的OnClose事件处理过程中加入如下代码,示例:procedure ChildForm.OnClose(Sender: TObject; var Action: TCloseAction);begin Action := caFree;end;Delphi为一个Form的关闭行为指定了四种方式,分别是:caNone 禁止Form被关闭 caHide Form不被关闭,但是被隐藏。被隐藏的For 阅读全文
posted @ 2011-08-24 21:05 bingege 阅读(3530) 评论(0) 推荐(0) 编辑
摘要: 关于小数: 1、SQL数据表中使用numeric字段时(一定要注明小数位数),程序中使用:ADOQuery1.FieldByName('price').Value := RoundEx((ADOQuery1.FieldByName('price').AsFloat + strtofloat(Edit1.text)) * 1000) / 1000;或者ADOQuery1.FieldByName('price').Value:=adoquery1.FieldByName('price').AsFloat+strtofloat(edit 阅读全文
posted @ 2011-08-21 17:54 bingege 阅读(731) 评论(0) 推荐(0) 编辑
摘要: procedure TfrmCargoInfo.RzComboBox2Exit(Sender: TObject);begin inherited; if Pos((RzComboBox1.Value), (RzComboBox1.Values.Text)) = 0 then begin if MessageBox(Handle, '您需要把当前数据追加到信息库中吗?', '请你确认', MB_ICONQUESTION + MB_YESNO) = 6 then begin //写信息到相关的数据库中去 RzComboBox1.Items.Add(RzComboBo 阅读全文
posted @ 2011-06-06 21:55 bingege 阅读(189) 评论(0) 推荐(0) 编辑
摘要: Windows 2000 / XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处:(1)不用登陆进系统即可运行.(2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的.笔者在2003年为一公司开发机顶盒项目的时候, 曾经写过课件上传和媒体服务, 下面就介绍一下如何用Delphi7创建一个Service程序.运行Delphi7, 选择菜单File - - New - - Other - - - Service Application.将生成一个服务程序的框架.将工程保存为ServiceDemo.dpr和Unit_Main.pas, 然后回到主框架 阅读全文
posted @ 2011-01-28 12:44 bingege 阅读(971) 评论(0) 推荐(0) 编辑
摘要: 前段时间因要写服务程,但发现程序比较大,不包含窗口类的情况下都要120K以上!实在是太大了! svchost.exe服务程序的大小才 7.76 KB,我想服务程序可以写的很小!我在网上找找了好长时间终于给我找到精简的服务程序的DELPHI代码(好的DELPHI代码实在是少啊), 我把源代码放上来和大家分享!program DemoSrv;Windows NT Service Demo program for Delphi 3 By Tom Lee, Taiwan, Repubilc of China(Tomm.bbs@csie.nctu.edu.tw) JUL 8 1997 ver 1.01 阅读全文
posted @ 2011-01-28 12:41 bingege 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 我的问题终于解决,我来通报一下,原来在dll中修改控件属性必需要user后加个sharemem,加完马上就好什么问题也没有。 摘自SDA三层架构Delphi群聊天记录。 阅读全文
posted @ 2010-11-15 08:32 bingege 阅读(155) 评论(0) 推荐(0) 编辑
摘要: procedure TfrmServerInfo.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer);begin inherited; if (ssleft in Shift) then begin ReleaseCapture; Perform(wm_syscommand, $F012, 0); end;end; 阅读全文
posted @ 2010-11-14 01:13 bingege 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 显示进度框的例子: g_wait.show; g_wait.Update; if s_ctbz=NIL then s_ctbz:=Ts_ctbz.Create(self);s_ctbz.showmodal; 阅读全文
posted @ 2010-05-24 06:43 bingege 阅读(255) 评论(0) 推荐(1) 编辑