2011年7月21日
摘要: 完成了安装以后,在additional选项卡里,就可以选择TChart进行使用.在Options->Language->Change中,可以修改TeeChart Editor为中文菜单,但是不推荐这样做,毕竟写代码还是得用英文的.Edit Chart:打开TeeChart Editor界面,可以进行Series,Axis,Wall之类的参数编辑.Print Preview:打印预览...Export Chart:可以将Chart导出图片之类的格式.Custom Axes:可以编辑 自定义Axis,也就是轴Seires:可以编辑 曲线序列,也就是数据集合.先贴一张TeeChart E 阅读全文
posted @ 2011-07-21 23:13 solokey 阅读(851) 评论(0) 推荐(0) 编辑
摘要: 刚才有人问起..顺手写的.他是用于DLL,所以我多写了2个函数.在DLL里提供内存指针输出,一定要记得提供相应的内存释放函数.有借有还,再借不难...老规矩..下面是demo 1 var 2 MS: TMemoryStream; 3 bytes: PByte; 4 size: Integer; 5 begin 6 MS := TMemoryStream.Create; 7 MS.LoadFromFile('d:\1.rar'); 8 size := StreamToBytes(MS, bytes); 9 10 MS.Clear;11 12 BytesToStream(bytes 阅读全文
posted @ 2011-07-21 23:10 solokey 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 因为一个需求,写了这样一个类..写的我很胸闷.好多东西都没有现成的...记得一定要SetFileName,不然没法用..而且可能报异常,实在不想写异常处理了..我实在没找到构造函数在哪里....我只尝试了WriteString,ReadString,ReadSections这几个函数,其他的都没测试.调用代码如下:1 Dim sectionlist() As String2 IniFile.SetFileName (".\Test.ini")3 IniFile.ReadSections sectionlist4 Dim i As Long5 Combo1.Clear6 Fo 阅读全文
posted @ 2011-07-21 23:07 solokey 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 一点说明,本人还在极其落后的使用Delphi5,所以所有的测试,代码均为D5版本,看的时候要有一颗兼容的心.//------------------------------------------分割线---------------------------------------------------------------第三方组件,尽量使用有源码的版本,方便修改问题,也方便看懂功能,不然改都没法改.安装TeeChart的话,推荐TeeChart Pro v8.01 with Full Source,目录中有一个exe名为:TeeRecompile.exe.运行它.点击:BEGIN.编译完 阅读全文
posted @ 2011-07-21 23:05 solokey 阅读(746) 评论(0) 推荐(0) 编辑
摘要: uses ShellAPI;var FileName: string;begin FileName := 'D:\tools\cpu-z\cpuz.exe'; ShellExecute(0, 'Open' ,'explorer.exe', PChar('/e,/select,' + FileName), nil, SW_NORMAL);end;-------------------------------------------------------无敌分割线----------------------------------- 阅读全文
posted @ 2011-07-21 22:59 solokey 阅读(396) 评论(0) 推荐(0) 编辑
摘要: var t: TLastInputInfo;begin t.cbSize := SizeOf(t); GetLastInputInfo(t); Label1.Caption := IntToStr(GetTickCount - t.dwTime); //这里是msend;-------------------------------------无敌分割线----------------------------------------------type PLastInputInfo = ^TLastInputInfo; {$EXTERNALSYM tagLASTINPUTINFO} tagLA 阅读全文
posted @ 2011-07-21 22:57 solokey 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 1 var 2 sei: SHELLEXECUTEINFO; 3 FileName: string; 4 begin 5 FileName := 'C:\a.a'; 6 with sei do begin 7 cbSize := SizeOf(sei); 8 fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_INVOKEIDLIST or SEE_MASK_FLAG_NO_UI ; 9 Wnd := Self.Handle;10 lpVerb := 'properties';11 lpFile := PChar(FileN 阅读全文
posted @ 2011-07-21 22:55 solokey 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 1 var2 ws: DWORD;3 begin4 ws := GetWindowLong(Form1.Handle, GWL_EXSTYLE);5 ws := ws or WS_EX_TRANSPARENT;6 ws := ws or $80000;7 SetWindowLong(Form1.Handle, GWL_EXSTYLE, ws);8 end; 阅读全文
posted @ 2011-07-21 22:54 solokey 阅读(208) 评论(0) 推荐(0) 编辑
摘要: delphi里的普通函数指针pointer 为4个字节,但是对象的方法指针是8个字节,由对象指针self(4字节)和函数指针(4字节)组合而成.了解了这句话,将普通的函数指针变成对象的方法指针就不是难事了.这种手段只能用于对象方法只有Sender这一个参数的情况.下面是简单的例子代码. 1 procedure Button2Click(Sender: TObject); //这里是一个普通的函数 2 implementation 3 4 {$R *.DFM} 5 procedure Button2Click(Sender: TObject); 6 begin 7 ShowMessage( 阅读全文
posted @ 2011-07-21 22:53 solokey 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 1个窗体,1个unit先说调用方法吧,刚才在csdn里也贴了这段代码..不过没写详细使用方法...汗.. 1 CreateProgressDlg(); 2 try 3 while () do begin 4 UpdateProgressDlg(); 5 if ProgressCanceled then 6 break; 7 end; 8 finally 9 DestroyProgressDlg();10 end; View Code 1 //--------------------------------------------进度条窗体---------------------------- 阅读全文
posted @ 2011-07-21 22:50 solokey 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 1 function GetActiveWindowText: string; 2 3 var 4 hnd: HWND; 5 6 stlen: Integer; 7 8 begin 9 10 hnd := GetForegroundWindow;11 12 stlen := GetWindowTextLength(hnd);13 14 SetLength(Result, stlen);15 16 GetWindowText(hnd, PChar(Result), stlen);17 18 end; 顺便一提,GetActiveWindow只能得到调用进程内的窗体Handle. 阅读全文
posted @ 2011-07-21 22:47 solokey 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 1 unit UAccessOperate; 2 3 interface 4 5 uses Windows, Sysutils, ComObj, Dialogs, ActiveX; 6 7 //修改ACCESS数据库密码 8 function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean; 9 10 //压缩与修复数据库,覆盖源文件 11 function CompactDatabase(AFileName,APassWord:string):boolean; 12 13 //建立Acce. 阅读全文
posted @ 2011-07-21 22:47 solokey 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 用起来还真的挺麻烦. 1 const 2 ColorPrefix = 'Color'; 3 4 var 5 6 i: integer; 7 8 begin 9 10 for i := 0 to 15 do11 12 ColorDialog1.CustomColors.Values[ColorPrefix + Char(Ord('A') + i)] := IntToHex(Color_Ary[i], 8); 13 14 end; 阅读全文
posted @ 2011-07-21 22:44 solokey 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 懒得修改了。参数里应该再加一个字段名称,有兴趣的修改一下。。。目前是根据VersionNO来判断,读的时候也可以根据数据库中流的长度来比较。。最好是通过外界手段。。自己控制吧。。。只要是连续内存的东西,都可以拿来存... 1 function TDataModuleDataBase.LoadRecFromDB(const aName, TableName: string; 2 var Rec; RecSize: Integer): Boolean; 3 var 4 MS: TMemoryStream; 5 begin 6 Result := False; 7 if Trim(aName)=&# 阅读全文
posted @ 2011-07-21 22:42 solokey 阅读(438) 评论(0) 推荐(0) 编辑
摘要: OnMouseUp1 var2 aPoint: TPoint;3 begin4 if Button = mbLeft then begin5 GetCursorPos(aPoint);6 PopupMenu.Popup(aPoint.x , aPoint.y);7 end;8 end; 阅读全文
posted @ 2011-07-21 22:41 solokey 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 允许多选的ListBox需要加判断.可以参考被注释掉的代码.不再赘述. 1 //OnMouseUp: 2 3 var 4 APoint: TPoint; 5 Index: Integer; 6 begin 7 if Button=mbRight then 8 begin 9 APoint.x := X;10 APoint.y := Y;11 Index := ListBox.ItemAtPos(APoint, True);12 {if (ListBox.SelCount <= 1) and (Index >= 0) then begin13 SelectedList 阅读全文
posted @ 2011-07-21 22:39 solokey 阅读(822) 评论(0) 推荐(0) 编辑
摘要: sheet的第一行被ADO读为表名.其他操作和其他数据库类似.1 ADOConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;' +2 'Data Source=' + TargetXlsFileName + ';Mode=Share Deny None;Extended Properties="Excel 8.0;IMEX=1";' +3 'Persist Security Info=False;Jet OLEDB 阅读全文
posted @ 2011-07-21 22:37 solokey 阅读(502) 评论(0) 推荐(0) 编辑
摘要: cygwin使用心得1.在cygwin里访问Windows盘cd /cygdrive/ccd c:2.整合cygwin命令到Windows中假设cygwin安装在d:/develop/cygwin,则将d:/develop/cygwin/bin添加到系统变量PATH中(最好加在windows前面,这样的话,有些相同的命令的话,是先执行cygwin的命令,而不是windows命令,比如find)就可以直接在cmd.exe下面执行tar czvf xxx.tgz ./基本上所有的命令都可以用了,包括ls,more,less,find,grep等。3.使用TGZ备份将cygwin的BIN加入到PAT 阅读全文
posted @ 2011-07-21 22:36 solokey 阅读(373) 评论(0) 推荐(0) 编辑
摘要: WinIO程序库允许在32位的Windows应用程序中直接对I/O端口和物理内存进行存取操作。通过使用一种内核模式的设备驱动器和其它几种底层编程技巧,它绕过了Windows系统的保护机制。WinNT/2000/XP下,WinIO函数库只允许被具有管理者权限的应用程序调用。如果使用者不是以管理者的身份进入的,则WinIO.DLL不能够被安装,也不能激活WinIO驱动器。通过在管理者权限下安装驱动器软件就可以克服这种限制。然而,在这种情况下,ShutdownWinIo函数不能在应用程序结束之前被调用,因为该函数将WinIO驱动程序从系统注册表中删除。该函数库提供8个函数功能调用:bool _std 阅读全文
posted @ 2011-07-21 22:35 solokey 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 调用时1 //右侧显示2 3 SetMainMenuAlignment(MainMenu1, True);4 5 //左侧显示6 7 SetMainMenuAlignment(MainMenu1, False); 不多说了....这个东西貌似也没什么实际用途...无聊写着玩吧.. 1 //============================无敌分割线===================== 2 3 //将某个MenuItem(包括其右侧所有MenuItem),移动至右侧 4 5 procedure SetMenuItemAlignment(MainMenu: TMainMenu; Men 阅读全文
posted @ 2011-07-21 22:32 solokey 阅读(315) 评论(0) 推荐(0) 编辑