摘要:
// Author: CXG 2010-08-07 08:22:30unit uMain;{.$HINTS OFF}interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, RzTabs, RzSplit, RzPanel, ExtCtrls, ComCtrls, RzButton ,ADODB, DB, ImgList, StdCtrls, RzStatus ;type TFormMain = class(TForm) MainMenu1: 阅读全文
摘要:
字典数据表设计,table字段设置排序 读取字典元数据方法procedure SetDataSet(dataset: TDataSet; const table: string);var d: TADOQuery; i: Integer;begin if dataset = nil then Exit; if not dataset.Active then Exit; if table = '' then Exit; d := TADOQuery.Create(nil); try with d do begin Connection := uFunction.GetConnec 阅读全文
摘要:
此法可用于设计功能模块树,用户权限树,类别树以及一切需要TREE来表示之层级关系的。。。此法只需要遍历一次数据集即生成了整棵树。读取数据生成树的算法:procedure CreateTree(DataSet: TADOQuery; Tree: TTreeView; const table, aid, aname: string; idname: Boolean);const ID_DEPT = 2;var nLevel: Integer; pNodes: array[0..1023] of TTreeNode; lpID, lpName, s: string;begin if DataSet 阅读全文
摘要:
econtrol form designer添加三方控件支持 修改StdRegComps.pas单元 1.添加引用单元进来 uses {$IFDEF EHLIB} DBGridEh, PrnDbgeh, GridsEh, DBCtrlsEh, {$ENDIF} {$IFDEF DBANYWHERE} 阅读全文
摘要:
FASTSCRIPT脚本实现多国语言 阅读全文
摘要:
本例效果图:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;Memo1: TMemo;Memo2: TMemo;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);end;varForm1: 阅读全文
摘要:
本例在建立一个新的堆前后分别通过 GetProcessHeaps 函数获取了当前进程的堆句柄列表, 没想到一个最简单的程序也有 5 个堆. 效果图:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Memo1: TMemo;Memo2: TMemo;Button1: TButton;procedure FormCreate(Sender: TObject);proc 阅读全文
摘要:
系统给程序的地址数是 4G, 为什么不是 3G 或 5G? 因为 32 位的指针的最大值就是 $FFFFFFFF, 它不能表示更多了, 究其根源这要回到 CPU 的寻址能力、地址总线等等.在 Win64 下, 系统给程序的地址数达到了 16EB(0 - $FFFFFFFFFFFFFFFF), 也就是 18446744073709551616 个. 不过 Win64 还没有普及, 我们还得回到实际的 Win32.就这 4G 的地址, 系统还要留下一半($80000000 - $FFFFFFFF, 这 2G 是各进程共享的)用作宏观管理; 只给程序 2G(0 - $7FFFFFFF).就这 2G 阅读全文
摘要:
VirtualAlloc 分配的内存是以 4K 为最小单位、连续的内存地址(但映射到真实的内存时它不一定是连续的), 前面说了, 它不适合分配小内存(譬如只有几个字节的变量); 局部的变量在 "栈" 中有程序自动管理, 那么那些全局的小变量怎么办呢? 这就要用到 "堆".9 q% /+ Q1 L, }1 F2 x$ D5 D! A+ n! q4 O% aQ5 x0 r3 Y这样看来, VirtualAlloc 分配的内存既不是 "栈" 也不是 "堆"; VirtualAlloc 分配的内存地址是连续的, " 阅读全文
摘要:
一个使用私有堆的例子:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}var MyHeap: THandle; {堆句柄} p: Pointer.. 阅读全文