2014/12/25

Sublime Text 3 的相關資源

Sublime Text 全程指南
Sublime Text 3 新手上路:必要的安裝、設定與基本使用教學
ZEN-CODING - 教你極速撰寫HTML5與CSS3程式碼

快捷鍵:自動完成 (ctrl + space)
因為和輸入法快捷鍵衝突,所以開啟 Preferences → Key Bindings - User
輸入:
{ "keys": ["alt+/"], "command": "auto_complete" },
{ "keys": ["alt+/"], "command": "replace_completion_with_auto_complete", "context":
[
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false },
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
]
},
    { "keys": ["ctrl+k", "ctrl+/"], "command": "set_mark" }
存檔即可。

Preferences.sublime-settings:
    // 游標設為呼吸燈模式
    "caret_style": "phase",
  // 當前 Line 高亮
    "highlight_line": true,
    // 增加 Line 的間距
    "line_padding_bottom": 1,
     "line_padding_top": 1,
     // 括弧可摺疊
     "fade_fold_buttons": false,
     // Folders 的目錄字體加粗
     "bold_folder_labels": true,
     // 把 Tab 換成 2 個空白
  "translate_tabs_to_spaces": true,
     "tab_size": 2,
  // 存檔時移除多餘空白
     "trim_trailing_white_space_on_save": true


個人使用的 Package:

  • EMMET - HTML + CSS 指令快捷生成
  • ConvertToUTF8 - 提供非英文語格式支援
  • IMESupport - 輸入法框跟隨
  • BracketHighlighter - 對應區塊高亮
  • TrailingSpaces (Ctrl + Shift + P) - 行末多餘空白處理
  • DocBlockr - 自動註解(含格式)產生


Devart UniDAC 和旗下的專用DAC 有何不同?

UniDAC 屬萬用型,各式資料庫都可以使用,但不支援資料庫 API

專用DAC,如 PgDAC, MyDAC, IbDAC 等,只支援其特定資料庫 (但 IbDAC 同時支援 Interbase 和 Firebird 兩種),支援直接連線 (Direct Connect) 和 API (如備份功能) 是其特色。

2014/12/11

Delphi XE 新特性 -- SplitString

官方手冊上是這麼寫的:

這個功能和 TStringList 的 Delimiter 有重疊,但卻少了 Create 和 Free 的動作,在程式寫作上會更為方便。
這也是從 .NET 上學習過來的,就使用它的範例吧:
procedure TForm1.Button1Click(Sender: TObject);
var
  vText: string;
  vStrArray: TStringDynArray;
  vPos: Integer;
  vStrList: TStringList;
begin
  vStrList := TStringList.Create();
  vText := 'there is a cat';
  vStrArray := StrUtils.SplitString(vText, ' ');
  for vPos := 0 to Length(vStrArray)-1 do
    vStrList.Add(vStrArray[vPos]);
  ShowMessage(vStrList.Text);
  FreeAndNil(vStrList);
end;

回傳結果:

比較要注意的地方是,Delimiters 參數雖然是 String 但只接受一個字元的內容。
如果超過兩個字元,會得到無法預期的結果。


2014/12/02

Indy 操作 SMTP 發生 "Could not load SSL library"?

在 Indy 操作 SMTP 時,Delphi 跳出「Could not load SSL library」的訊息。

去 Win32 OpenSSL 網站下載個 「Light」版來安裝,就能解決這個問題了!

另外,這個網站有更詳盡的解說:"Cannot load SSL Library" using Delphi XE7


延伸閱讀:
Sending email with attachments using Delphi, Indy 10.5.5 and GMail

How to use URLEncode in Delphi

URL編碼,也稱【百分號編碼(Percent-encoding)】 由於 URL 不能直接接受 UTF8 文字,所以要先轉成百分號編碼後,如此網址才能順利送給 HTTP Server 從 Indy 加入 Delphi 後,就可以用 IdURI.TIdURI 單元進行編碼 ...