發表文章

目前顯示的是 十二月, 2012的文章

Delphi 的 ERROR Insight = 一堆bug...

圖片

PostgreSQL with Xampp

資料來源:PostgreSQL with Xampp


經測試後可用,且相當實用的教學。

[轉] Delphi XE Refactor 重構功能簡單說明

Delphi XE Refactor重构功能简单说明 節錄部份說明如下:

1. Rename: 包括重命名变量,函数名,组件名等等。好处是它会把整个项目里所有引用的地方都自动修改!经常碰到名字起的不好或者不一致的,想要修改又嫌麻烦,现在省事多了。

2. Declare Variable,Declare Field: 自动声明,举个例子: for i:=0 to TmpList.Count-1 do begin ...end; 如果变量i没有声明,可以用这个功能加个声明。麻烦的是会弹出对话框让自己选变量类型,并没有节省太多时间

3. Extract Method: 提取方法。这个也很实用,举个例子:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.Caption := 'This is a Test';
  Button1.Enabled := false;
end;

我们经常会在form的create事件里做很多的初始化操作,有时候发现这些初始化操作需要重复执行,选中要提取的代码,选择Extract Method,指定方法名为InitScreen,如下:


procedure TForm1.FormCreate(Sender: TObject);
begin
  InitScreen;
end;

procedure TForm1.InitScreen;
begin
  Form1.Caption := 'This is a Test';
  Button1.Enabled := false;
end;

如果提取的代码中引用了本地变量,会自动给新方法加上引用声明。不过,如果提取的代码过于复杂的时候有时会出错,需要自己手工修改。

4. Extract Resource String: 把一个字符串声明称resourcestring类型的常量,目前没发现有什么用处

5. Change Params: 修改函数参数,很不实用的功能

6. Find Unit: 查找类所在的单元,这个功能本来应该很有用,比如你在网上拷贝了一段代码,结果编译提示你找不到某个类型,用这个功能,输入类名,就可以告诉你在哪个单元里,并自动加到Interface或…

自由倉頡真的好用

資料來源:Windows all x86/x64 倉頡輸入法(自由倉頡(轉載)+自製第五代碼表)第五代碼表可採用"倉頡平台"的字碼表終於有套符合TSF又支援第五代倉頡的免費輸入法了!萬用字元*,用於模糊查找很好用
微軟倉是「難」鍵
自由倉是「:」鍵(沒錯,就是Shift + :)中英切換
微軟倉是「Shift」
自由倉是「Shift + Backspace」有些地方的切換反倒是不太習慣。
參考資料:《自由倉頡輸入法》常用熱鍵2015/08/03 更新
由於在win7上的skype上聊天一陣子後,會造成軟體崩潰,最終還是放棄使用自由倉頡。另一套「小小輸入法」平台則是在 PowerPoint 2010 輸入時一定會使 Powerpoint崩潰,故也無法使用。目前,我使用的是 GCIN輸入法平台,在經過調整後,已經和微軟倉頡十分接近。只是對win 8.1 以上的版本相容性還沒跟上。GCIN是一套值得關注的好輸入法!

幾種提昇 MDAC 應用程式效能的方法

資料來源:http://www.reocities.com/huanlin_tsai/faq/n012.txt

1.在記錄的迴圈當中使用預先連結的欄位物件

  參考下面的範例:

  procedure TForm1.Button1Click(Sender: TObject);
  var
    fldID, fldName, fldAge: TField;
  begin
    fldID := ADODataSet1.FieldByName('ID');
    fldName := ADODataSet1.FieldByName('Name');
    fldAge := ADODataSet1.FieldByName('Age');
    ADODataSet1.First;
    while not ADODataSet1.Eof do
    begin
      writeln(fldID.AsString);
      writeln(fldName.AsString);
      writeln(fldAge.AsString);
      ADODataSet1.Next;
    end;
    ADODataSet1.Close;
  end;

2.除非必要,否則不要使用 cursor-based 的方式更新資料

  雖然使用 SQL 命令來更新資料在某些情況下並不適合,你還是應該盡量
  使用這種方式,經由 recordset 物件 (TADODataSet 及其後代) 來更新
  資料雖然方便,但所必須付出的代價也較大,儘管 SQL 命令比較難以使
  用,但是絕對值得。

3.使用帶輸出參數的預儲程序取代只傳回一筆記錄的 Select 敘述

  當你知道 query 傳回的結果集只有一筆記錄時,你可以使用帶輸出參數
  的預儲程序取代開啟一個 recordset。
  當你開啟一個 recordset 時,傳回的結果集包含了資料以及 metadata
  ,通常 metadata 的資料量蠻大的,所以你可能會想用一個帶輸出參數
  的預儲程序。

  Sub SingletonSp()

    Dim cmd As New Command

    cmd.ActiveCon…

关于在DELPHI6中使用正则表达式的一些心得

转载地址:
http://www.delphibbs.com/keylife/iblog_show.asp?xid=25712
http://blog.csdn.net/senfore/article/details/2154944

一. 工具选择

DELPHI6本身没有处理正则表达式的库,只能找第三方库。在选择方面,我的标准是:

1. 不必向开发环境注册控件
2. 接口简单
3. 符合主流的perl式正则语法
4. 专业,至少应该有个看上去专业的专门网站
5. 免费

目前符合以上标准, 比较好的RegEx类库有TRegExpr ( http://www.regexpstudio.com/ )与PerlRegEx ( http://www.regular-expressions.info/ )。

TRegExpr 是俄国人做的RE类库,应该说是目前国内最主流的免费RegEx类库了。纯DELPHI写成,支持中文,可以选择安装为开发环境控件,也可直接作为类库单 元使用(只有一个主类,一个pas文件)。美中不足是自从2004年后就没有更新了,版本一直是0.9xxx,就是不上1。而且不支持 Lookaround语法(前瞻与回溯功能)

PerlRegEx底层是用C的类库,完全符合PCRE标准(兼容Perl的正则表达式)。 文件结构比TRegExpr复杂一点,包括一个放底层obj文件的子目录和两个接口.pas文件,实际使用时只需要向项目中添加一个单元(当然也可以注册 成为控件)。之前的版本据说对中文支持不够,最新版本我在中文环境下用倒没遇到什么问题。说明文档也声称支持Unicode。

现在我是常 备两个这两个类库,但主要还是用PerlRegEx。除了迷信最后更新日期与C的执行效率外。还看中了RegexRubby这个基于同一套C类库的 RegEx编写工具,以及PerlRegEx提供了一个study方法,声称可以对正则式做点前期编译,提高执行效率。

=========================================================================
二 使用方法:

解 压了PerlRegEx包后,如果不想注册控件,除了PerlRegEx.pas、CHelpers.pas和PCRE目录外,其他的东西可以建个隐藏目 录搁置起来(没认真阅读用…

DBGrid繪圖上的一個小Bug

在Delphi 2010之後,DBGrid多了一個Drawing Style屬性,可以讓我們DBGrid更為漂亮

但不知怎麼的,常常在使用上見到「殘影」,難道Delphi改走武術路線不成?

當然不是,這是DBGrid的一個Bug

一直到XE3(2013)為止,這個Bug一直沒有解決

於是國外有人修改了VCL Source來解決這個問題

這邊轉貼他的Fix法:

建立專屬於你的檔案型資料庫 - 使用Delphi

圖片
原來也可以這樣使用File I/O型資料庫
真是極簡至極

詳見:Create Your Own Database Using Delphi's "File Of" Typed Files

Delphi/BCB檔案名稱的處理函式整理

圖片
底下的網址有詳盡的介紹

這樣就可以少嗑些code了吧!哈哈!

資料網址:File Name Utilities

除了整理之外,還有範例碼!

一個字:讚!


Delphi裡面常看到的#$D#$A是什麼意思咧?

#$D#$A = CRLF = #13#10 = char(13)+char(10)

Chrome套件介紹-Webpage Screenshot 網頁快照

圖片
當你看到某個網頁很不錯想抓圖下來留念,或者希望能將網頁上的訊息抓圖保存下來,留待日後當做證據或其他備份用途,可以試試看用下面的網頁抓圖軟體來抓圖。

Webpage Screenshot是個Gooogle Chrome瀏覽器的擴充套件,可以安裝在4.x以上版本的瀏覽器,內建繁體中文語系。可以將目前看到的可視範圍內的網頁畫面抓圖下來,存成JPG圖檔,也可將整個網頁從上到下、完整的抓圖下來,整個操作相當簡單。

詳見:重灌狂人-「網頁快照」支援自動捲頁、將網頁全文抓圖存檔(Google Chrome套件)


DataSetProvider.ResolveToDataSet

DataSetProvider.ResolveToDataSet=false时
代表DataSetProvider自动产生更新数据的Sql叙述用于更新数据库。
DataSetProvider.ResolveToDataSet=true时
代表通过DataSetProvider连接的Query来更新数据。


資料來源
关于用query 作为数据集更新数据和DataSetProvider.ResolveToDataSet的关系