發表文章

目前顯示的是 二月, 2016的文章

Delphi ORM Generator

圖片
What is your code pattern? Like below:

MyDataSet.FieldByName(‘MYFIELD’).AsString := something…;
MyDataSet.Fields[n].AsString := something…;


Why can not used ORM(Object-relational mapping) code in Delphi?
Ex:
Employee.EmpNo := 1;
Employee.Name := 'Eden';


Because TDataSet! It's always only one mapping method: FieldByName. You are always only to use:

IDE design mode, drop down TDataSet...Open TFields box, append all fields...Type innumerable "FieldByName" and "Fields" in Editor...
That is not your best solution, ever!

You need "Strong Type"! It is like String, Integer, Double etc!


So "Delphi ORM generator" application is born! as shown below:



How to connect?
“Delphi ORM generator” that uses ODBC, it can connection any database.

“With Table”
It can select multi items to build source unit in right memo. (Select only one Table in current version)

“With SQL” and “By MyBase”
It provides analysis SQL statement / MyBase data to build source unit (O…

About Me

圖片
Hello there,

Welcome to my blog! My name is Eden Wu.

I am Software Developer with over 10 years of experience in the area.


I wrote some of the product shipped in commercial products such as: C++ Builder 6, Delphi XE, and Delphi XE7.

In 2016 Embarcadero invited me to join a select group of Delphi experts from around the world to form the Embarcadero MVP program, to which fewer than 100 people worldwide have been admitted (I'm the only one from Greater China).


I am very proud to announce that Embarcadero has appointed me as one of their MVP(Most Valuable Professionals)!



I hope you'll enjoy your visit here.

=========================
歡迎!

歡迎你來到我的部落格,我是【大匠之風】的作者:「Eden Wu」。

我是一名資料庫應用程式開發者(軟體工程師),有超過十年的程式開發經驗。

過往曾以「C++ Builder 6、Delphi XE 和 Delphi XE7」,為服務的公司打造出符合其需求的商業應用程式。


在 2016 年,我獲得 Delphi 最高榮耀【Embarcadero 最有價值專家(MVP)】資格,在全球超過 100 名的最有價值專家中,在大中華區,我是唯一的【Embarcadero 最有價值專家(MVP)】。

我要驕傲的再次重申:我是 Embarcadero 認可的最有價值專家之一!

謝謝你來到我的部落格,也期待你能享受我的文章。

Field common unit generator by Delphi

圖片
What is your code pattern? Like below:

MyDataSet.FieldByName(‘MyField’).AsString := something…;
MyDataSet.FieldByName(‘MYFIELD’).AsString := something…;
MyDataSet.FieldByName(‘myfield’).AsString := something…;

Like these codes in the maintenance often have lost a string or sensitive issues, so "Field common unit generator" application is born! as shown below:


How to connection?
“Field common unit generator” that uses ODBC, it cans connection any database.

“With Table”
It can select multi items to build source unit in right memo.

“With SQL” and “By MyBase”
It provides analysis SQL statement / MyBase data to build source unit (Only one table).

Why use “Field common unit generator”?

Elegant: You can call Code Insight when editor, this fast input and code is clear!Correct: “Field common unit generator” out the code is hard-coded, so you can aware be wrong if typing a spelling errors in Design mode.Efficient: Besides quickly type, if use DataSet.Fields in design, the program can incr…

FireMonkey 學習日記05 -- 實現 Login 功能(下)

圖片
繼上回所做出來的結果:

結果輸入畫面會被虛擬鍵盤摭住,所以接下來就是參考【FireMonkey -- 實現 Login 功能(中) 】所提到的「KeyboardDemoForm」專案來解決這個問題


比較有意思的是,為了能方便在 Windows 下的 Debug,可以設定全域變數:

FireMonkey 學習日記04 -- 實現 Login 功能(中)

圖片
原來官方的 Demo 裡有解決虛擬鍵盤擋住輸入元件的辦法

範例專案名是:KeyboardDemoForm
看了看原始碼,我認為是利用拉霸(Scroll Bar)來操作輸入欄位的處理

FireMonkey 學習日記03 -- 實現 Login 功能(上)

圖片
繼昨日的 FireMonkey 範例專案後,就在這個專案上加點東西吧,就以 Login 功能來實作好了

首先,再加入 TTabControl,給了兩個分頁
在「LOGIN」分頁加入了 TLabel, TEdit 物件,畫面如下:

FireMonkey 學習日記02 -- 從範例專案學分頁技巧

圖片
FireMonkey最原先的目標是在行動平台上,就以行動平台範例來學習吧!

專案精靈裡有個「Tabbed with Navigation」項目
在這個專案中,我們可以學習到:

FireMonkey 學習日記01 -- 多國語言嘗試

圖片
FireMonkey 裡有個 TLang 元件

主要是使用 TLang 裡的「Language designer」進行映射工作,如下圖:


來試試看結果如何吧!

比較重要的是,標籤的部份沒有區分大小寫

英文版:


正體中文版:


意外的簡單用 ^_^

See also:

FMX.Types.TLangFMXTLang (C++)

秘技!【FireMonkey Mobile 預覽功能】

圖片
這功能算是隱藏版的秘技

但使用上很簡單

在 Project Source 的 uses 區塊,加上:

讀書心得 -- 【資料庫設計ER Model基礎講座】

圖片
前一陣子為了修改舊專案裡的小問題,發生了以下的情形:
修正了 A 問題,卻冒出了 B 問題 資料計算結果一直都有問題,但程式碼到手上時就已經這個版本
於是我決定重寫這個專案的核心,然而遇到更悲慘的狀況:

讀書心得--【劉備不是傳說】

圖片
繼【明朝的那些事兒】和【秦始皇:一場歷史的思辨之旅】後,終於有機會認真看完這一本書:【劉備不是傳說】


說起劉備,大家不約而同的會勾起一個印象 -- 【一名把天下哭出來的君王】。
這比把長城哭倒的【孟姜女】還要生猛,然而孟姜女的故事只是傳說,更何況如果真有其人,以她的神話性,想要成為武則天第二,又或是東方版的【聖女貞德】,那也是非常有可能的事情。

那些年 DBeXpress 所教我的事:DBXCommon 單元

圖片
今天是臺灣農曆年的最後一個工作日,也用技術文章作最後的收尾吧!
==============================


資料庫應用程式設計一直以來都是 Delphi 的強項之一。

Dbx 的目標是為了要讓所有資料庫存取方式統一,在核心上用了很多技巧。

在【dbExpress MetaData 徹底攻略】 文中便大量的應用到 DBX 的獨特設計方法。

例如:【如何取得資料表的所有欄位?】