bestlong 怕失憶筆記

當健忘由隨機逐漸趨向常態時,作筆記是非常必要的

Entries Tagged ‘Delphi’

小數點對齊並讓尾零不顯示

Delphi Format 格式指定寬度會在後面補零,沒指定寬度尾零就會去除但整排資料的小數點位置就不同,需要對齊小數點就要將尾零用空白替換掉。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TF2005J.qyWeightGetText(Sender: TField; var Text: String; DisplayText: Boolean);
var
  s: string;
  i: Integer;
begin
  if Sender.DataSet.IsEmpty then Exit;

  s := Format('%.*f', [4, Sender.AsFloat]);
  for i := Length(s) downto 0 do
  begin
    case s[i] of
      '0': s[i] := ' ';
      '.': begin
         s[i] := ' ';
         Break;
      end;
    else
      Break;
    end;
  end;
  Text := s;
end;

Leave a Comment

JVCL 自 3.38 版本停止支援 Delphi 5 環境

最近處理幾個 Delphi 5 開發環境下的專案,要先升級到 Delphi 7 開發環境,將所有相依套件進行整理與更新之後。確認 Delphi 5 可以使用 JVCL 的最後版本是 3.37 版。在此做個紀錄。

Leave a Comment

Spring4D – Delphi 版的 Spring Framework

只要是 Java 的開發者不管有沒有使用應該都會知道 Spring Framework 這個程式開發框架。
發現原來有人在用 Delphi 來打造了,最棒就是他是個 Open Source 的程式庫,可惜要 Delphi 2010+ 版本才可以用。

Spring Framework for Delphi (Spring4D) is an open-source code library for Embarcadero Delphi 2010+ platforms. It consists of a number of different modules, including a Dependency Injection Framework and a Base Class Library (Common Types, Collections Framework, Reflection, Logging).

http://www.spring4d.org

https://bitbucket.org/sglienke/spring4d

Copyright (c) 2009-2013 Spring4D Team

Leave a Comment

在 Delphi 中獲得 GUID

GUID (Globally Unique IDentifier) 是一個 128-bit Integer (16 bytes) 的數值。

在 Delphi IDE 中可以按下 Ctrl + Shift + G 快捷鍵會出現類似下列的 GUID 值:

1
['{2F45BDFE-1BE4-404D-9C5B-4B481D6A7482}']

每次按下快捷鍵都會產生不同的 GUID 值。

而程式中產生 GUID 值的方式如下列程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.FormCreate(Sender: TObject);
var
  s_GUID: string;
  t_GUID: TGUID;
begin
  if CoCreateGUID(t_GUID) = S_OK then
  begin
    s_GUID := GUIDToString(t_GUID);
    ShowMessage(s_GUID);
  end else begin
    ShowMessage('Create GUID ERROR.');
  end;
end;

In Delphi 5 need uses ComObj, ActiveX.

也可以當作 UUID 來應用。

Comments (1)

開發Delphi資料庫程式時不建議使用函數InsertRecord與AppendRecord

InsertRecord() 與 AppendRecord() 是 Delphi 的資料插入與新增的函數。雖然這兩個功能可以簡易方便的使用,若是在程式中大量使用,最後將會面臨欄位對應的問題。

為什麼呢?

當有需要調整DataSet元件中的欄位順序(我想應該會常常發生)或資料庫欄位的順序的時候,你就需要同步修改這兩個函數的資料順序,所以用的範圍越多問題越大。連調整欄位順序都有影響就是高度耦合的問題。

接手的舊系統就是有一堆這樣的狀況,只好先作苦力將全部程式碼都轉換過,再開始動資料庫。

Leave a Comment

  • 工商服務

    廣告讀取中...
  • 近期留言

  • 標籤

  • 彙整