bestlong 怕失憶筆記

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

Entries for the ‘Delphi’ Category

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

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

手動安裝 Rave Report

以 Delphi 5 + Rave7.05 為環境為例,寫個筆記免的每次重灌系統都要研究一次:

解壓縮放到 C:\Program Files\Borland\Delphi5\Rave7.05\ 目錄下

進入到 Source\SystemWin 子目錄下執行 FullD5.bat 進行編譯

點選 Delphi 功能表 Tools > Environment Options > Library > Library Path
將 C:\Program Files\Borland\Delphi5\Rave7.05\D5\ 加入路徑清單

點選 Delphi 功能表 Component > Install Packages > Add
到 C:\Program Files\Borland\Delphi5\Rave7.05\D5\ 目錄下開啟 dclRave.bpl 安裝設計模式元件

現在可以建立一個新專案並在 Form1 加入一個 RvProject1 元件
在元件上滑鼠右鍵選 Rave Visual Designer 看是否可以啟動報表設計程式
若是不行則要自己設定機碼
先確認一下 C:\Program Files\Borland\Delphi5\Rave7.05\ 目錄下是否有 Rave.exe 程式
執行 regeit 到 HKEY_LOCAL_MACHINE\SOFTWARE\Nevrona Designs\Rave70BEX
增加一個字串值 DesignerPath
且設定資料為 C:\Program Files\Borland\Delphi5\Rave7.05\

再去 Delphi 試一次應該就可以啟動了,接著就可以開始設計報表了。

Leave a Comment

Delphi應用程式中的日期格式管理

有很多套裝軟體或專案開發程式都沒有處理到這一塊問題,只會強制要求使用者的電腦環境一定要調整為西元年或民國年格式。

其實程式的日期格式會隨作業系統設定而自動改變畫面是一個特色,不過當程式有在用西元日期資料來處理單據編號或是轉換為民國年的部份可就沒那麼單純了。

例如程式寫成取得西元日期格式的後兩碼,但是當系統被設為民國年在兩碼時 99/12/23 就會取得 /1 而在三碼時 099/12/23 會取得 9/ 都是不合理的。

因為程式後續還會轉型為數字並減去 1911 來轉換取得民國年的數字。有些沒處理好的軟體就會在此出現錯誤訊息。

說實在的,如果需要同時用到的程式有衝突的時候,就不能同時開啟使用,難不成要多買台電腦分開用。有些程式還會在啟動時直接去調整系統的設定來適應自己,最後啟動的決定環境設定。

其實可以將程式設定成不受作業系統設定以及改變而受影響,可以利用 UpdateFormatSettings 屬性設定來決定當收到作業系統的 WM_WININICHANGE 通知訊息後,是否要重新讀取作業系統的設定格式。

另外也手動設定程式本身的所要使用的日期時間格式。程式碼如下:

1
2
3
4
5
6
7
8
9
10
//鎖定程式日期時間格式不受系統變化影響
Application.UpdateFormatSettings := false;

//設定程式本身所使用的日期時間格式
LongDateFormat  := 'yyyy/MM/dd';
ShortDateFormat := 'yyyy/MM/dd';
LongTimeFormat  := 'hh:nn:ss';
ShortTimeFormat := 'hh:nn:ss';
DateSeparator := '/';
TimeSeparator := ':';

這樣就可以固守程式的日期格式,自行在程式中管理日期的處理方式。

Comments (3)

  • 工商服務

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

  • 標籤

  • 彙整