發表文章

目前顯示的是 三月, 2012的文章

Use Thread to open ADO

type TOpenQuery = Class(TThread) Public constructor Create(Q: TADOQuery;sSQL: String); protected tQry: TADOQuery; tSQL: String; procedure Execute; override; end; { TOpenQuery } constructor TOpenQuery.Create(Q: TADOQuery; sSQL: String); begin inherited Create(False); FreeOnTerminate:=True; tQry:=Q; tSQL:=sSQL; end; procedure TOpenQuery.Execute; begin inherited; Screen.Cursor:=crAppStart; with tQry do Begin SQL.Text:=tSQL; Open; End; Screen.Cursor:=crDefault; end; 
Reference:
Use Thread to open ADO Query in backgroundSimple Thread Sample Delphi

Delphi XE 的 ZIP 實現方法

連結:将Delphi Xe2的Zip单元移植了一份到Delphi Xe上
再利用万一博客的這篇文章,就可以再加上進度條了!
给 System.Zip 增加了个(多文件解压时的)解压进度事件

2015/12/22 補充:
Delphi XE 使用 XE2 移轉過來的 System.Zip,在使用上雖然能壓縮,但卻無法被 Zip 解壓縮程式直接打開。

哼哼……原來還有藏一手啊……

在比對 XE2 的原始碼後,經過調整,總算是能夠正確使用,真是謝謝前人的努力!

See also:
Delphi解壓縮Gzip,使用ZlibEx

使StringGrid中的一列具有Check功能,和CheckBox效果一樣

從CSDN上找到的,感覺還不錯
來源:在StringGrid控件的单元格中动态插入CheckBox?
{//*********************************** 使StringGrid中的一列具有Check功能,和CheckBox效果一樣 //***********************************} unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids; type TForm1 = class(TForm) grid: TStringGrid; procedure FormCreate(Sender: TObject); procedure gridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure gridClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; fcheck, fnocheck: tbitmap; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var bmp: TBitmap; begin FCheck := TBitmap.Create; FNoCheck := TBitmap.Create; bmp := TBitmap.create; try bmp.handle := LoadBitmap(0, PChar(OBM_CHECKBOXES)); with FNoCheck do begin width := bmp.width div 4; height…

[轉]datasnap中如何修改ADOconnection的连接字串

[求助]datasnap中如何修改ADOconnection的连接字串。。
DELPHI DATASNAP 2010 入门操作(2)不写一行代码,绿色三层我也行

摘錄
Q. 因为作业原因,看了这篇文章,实现了最简单的三层。(局域网的datasnap sever:服务器是unit1+ServerMethodsUnit1+ServerContainerUnit1)
http://www.cnblogs.com/zhqian/archive/2010/07/06/1771798.html

后来把里面的ADOTable改成ADOquery,ADOconnection的相关设置修改了,做了个可执行条件查询的服务端,简单的三层就做好了。考虑到程序的灵活性,又设置了客户端的连接IP配置在ini文件中,客户端配置好,就剩下服务器的灵活性了,可是发现了个问题,不知道怎么才能修改ServerMethodsUnit1中的ADOconnection1的连接字串,在unit1中uses了ServerMethodsUnit1也不能引用到ADOconnection1。。。

A. 把adoconnection放在另一个单元,比如form,然后在ServerMethodsUnit中uses form的单元,就行
现在在form下的adoconn随你怎么弄了

=========================================
討論區的結局是成功的,但我還沒試過,有時間再來玩玩

Delphi XE 出現 zlib 缺 xx.obj 時的處理

delphi zlib » current version 下載最新的版本

Delphi中SendMessage使用技巧

圖片
Delphi中SendMessage使用技巧
东南大学梁云 应用与开发
Windows系统是由消息机制驱动的,每个线程如果建立了一个窗口,则由系统分配一个消息队列用于窗口消息的处理。另外,消息也可以不经过消息队列而利用SendMessage函数直接发送给窗口,窗口过程将处理这个消息,但只有当消息被处理之后,SendMessage才能返回到调用程序。下面结合两个Delphi程序,讨论如何利用SendMessage向控件发送消息和控件对这种消息的响应。 用SendMessage向控件发送消息 在编程中,有时需要控件以特殊的风格显示,而这种要求又无法通过设置控件属性实现。例如,读取客户列表并显示在下拉框供用户选择,如果下拉框宽度太窄,则不能全部显示;如果将宽度定得太宽,界面又有不紧凑之感。因此希望能在运行期动态地确定下拉框显示区域的宽度,这种要求如果不用SendMessage函数就很难实现。 解决办法是,在读数据库时计算字符串的显示宽度,用显示宽度的最大值确定下拉框显示区域的宽度。再用SendMessage函数向下拉框发送CB_SETDROPPEDWIDTH消息和宽度值,下拉框根据消息中传来的信息,就可以进行正确显示。 程序运行结果如图1所示: 部分源程序代码如下:

WinXP Home 如何刪除特殊系統目錄

參考來源:http://support.microsoft.com/kb/309531/zh-tw

節錄部份內容:

配合使用 NTFS 檔案系統的 Windows XP Home Edition 使用 CACLS在使用 NTFS 檔案系統的 Windows XP Home Edition 中,您也可以使用 Cacls 工具 (一種命令列工具) 來顯示或修改檔案或資料夾存取控制清單 (ACL)。如需有關 Cacls 工具的詳細資訊 (包括其用法與參數),請以「cacls」來搜尋「說明及支援中心」。按一下 [開始],再按一下 [執行],輸入 cmd,然後按一下 [確定]。確認您是位於想要存取的 [System Volume Information] 資料夾所在的磁碟分割的根目錄下。 例如,假設您要存取 C:\System Volume Information 資料夾,請確認您是位於磁碟機 C 的根目錄下 (在「C:\」命令提示字元下)。輸入下面這行命令,然後按 ENTER:cacls "driveletter:\System Volume Information" /E /Gusername:F 請務必按上述方式輸入引號。這個命令會將具有「完全控制」權限的指定使用者新增到這個資料夾。按兩下根目錄下的 [System Volume Information] 資料夾,開啟這個資料夾。如果您需要在疑難排解完成後移除這些權限,請在命令提示字元輸入以下這行命令:cacls "driveletter:\System Volume Information" /E /Rusername 這個命令會移除指定使用者的所有權限。