Delphi將Image存入MySQL資料庫

存入
[php]
var astream : Tmemorystream;
begin
AStream := TMemoryStream.Create;
try
Image1.Picture.Graphic.SaveToStream(AStream);
AStream.Position := 0;
if adoquery1.Active then
begin
adoquery1.Edit;
TBlobField(adoquery1.FieldByName(‘File’)).LoadFromStream(AStream);
adoquery1.Post;
end;
finally
AStream.Free;
end;
[/php]

取出
[php]
var
Ms:TStringStream;
jpg1:Tjpegimage;
begin
Ms := TStringStream.Create(”);
jpg1 := Tjpegimage.create;
try
if adoquery1.Active then
begin
TBlobField(adoquery1.FieldByName(‘File’)).SaveToStream(Ms);
Ms.Position := 0;
jpg1.LoadFromStream(ms);
image1.Picture.Bitmap.Assign(jpg1);
end;
finally
ms.Free;
jpg1.Free;
end;
[/php]

注意,如果出現Got a packet bigger than ‘max_allowed_packet’ bytes
在My.ini加上
max_allowed_packet = 10M

ROCKEY4ND軟體保護鎖(keypro)試用

德錡申請試用的軟體保護鎖寄來了!為什麼會想試用呢?其實是因為最近正在開發POS系統的需求,原本想說用軟體註冊碼的方式就可以了。不過POS的使用者怕營業資料外露的關係,有些是不想連上網路的…..於是就申請來試用看看。相關的程式測試幾天後再跟大家分享

ROCKEY4ND軟體保護鎖 ROCKEY4ND軟體保護鎖 R4ND+mini

相關資訊:
德錡實業有限公司 http://www.mtitw.com/
Tel: 02-27555955
FAX: 02-27557955

業務經理 簡建昌 0988778171 ben@mtitw.com

德錡實業有限公司 業務經理 簡建昌 德錡實業有限公司 業務經理 簡建昌

Delphi XE5撰寫Android程式常用的unit

Delphi XE5封裝了一些Android相關的api

Androidapi.Jni

Androidapi.JNI.Os

Androidapi.JNI.JavaTypes

Androidapi.JNIBridge

Androidapi.JNI.App

如果在程式中需要呼叫其他的.apk 或 .jar的話呢~則需要使用到

Androidapi.JNI.Dalvik

Androidapi.JNI.GraphicsContentViewText

FMX.Helpers.Android

Delphi XE5深入技術研討會

由李維大師所主持的Delphi XE5深入技術研討會,研討會過後二天,台灣QCom(捷康)就寄來了相關的文件了!

• 瞭解 Delphi XE5 如何在 Android / iOS 環境中運行
• 通往 Android / iOS 環境的重要觀念,類別 / 介面和方法
• 動態呼叫?靜態呼叫?
• 會使用下列幾個實例來說明:

– Delphi XE5 未封裝的 API
– BlueTooth
– Bar Code
– 其他第 3 方函式庫

 

延伸閱讀:
李維大師部落格 IT : 是工作還是嗜好?

捷康科技/Embarcadero 應用程式開發工具 http://embarcadero.qcomgroup.com.tw/

Delphi輸入法切換

Delphi-IME
由於微軟內附的螢幕小鍵盤還真的有點小,加上POS餐飲系統開發需要螢幕小鍵盤,所以乾脆自己寫一個”大”鍵盤。

裡面需要做輸入法的切換,所以分享給大家。

需要Uses到Winapi.imm;

[pascal]
Uses Winapi.Imm;
[/pascal]

1取得所有的輸入法名稱

[pascal]
var
i: integer;
begin
for i := 0 to screen.imes.count – 1 do
begin
ComBoBox1.Items.Add(screen.Imes.strings[i]);
end;
end;
[/pascal]

2切換到輸入法

[pascal]
var
I: integer;
myhkl: hkl;
begin
if ComboBox1.Text <> ” then
begin
if Screen.Imes.Count <> 0 then
begin
I := screen.Imes.indexof(ComboBox1.Text);
if I >= 0 then
myhkl := hkl(screen.Imes.objects[i]);
activatekeyboardlayout(myhkl, KLF_ACTIVATE);
end;
end;
end;
[/pascal]

3關閉輸入法

[pascal]
begin
ImmSimulateHotKey(Handle, IME_THOTKEY_IME_NONIME_TOGGLE);
ComBobox1.Text := ”;
end;
[/pascal]

4取得目前輸入法

[pascal]
var
IMEHandle: THandle;
Idx: Integer;
IMEName: String;
begin
IMEName := ”;
ImeHandle := GetKeyBoardLayOut(0);
for Idx := 0 to Pred(Screen.Imes.Count) do
if HKL(Screen.Imes.Objects[Idx]) = ImeHandle then
IMEName :=Screen.Imes[Idx];
ShowMessage(IMEName);
end;
[/pascal]

GitHub連結: https://github.com/superlevin/DelphiIme

Delphi Xe5 with InfoPower on GooglePlay

InfoPower是一套資料庫開發的元件,現在Woll2Woll Software也將它搬上FireMonkey並且支援Android了!
它們也在Googleplay上放了一個InfoPower FireMonkey Demo 的app讓大家下載試用。

不過壽山看來怎麼好像是在Android上跑Windows 呢?大家可以試看看好了!

 

相關連結:
Woll2Woll Software website : http://www.woll2woll.com/infopower.html

Delphi 使用idhttp下載顯示進度列及檔案大小

downloadwithprocessbar

在更新程式時,需要知道目前下載到多少百分比及大小怎麼做?

在Delphi使用idhttp及IdAntiFreeze(防止程式看起來當掉)二個元件就可以做得到。順便列下關鍵程式碼

[pascal]
procedure TForm1.BtnDownloadClick(Sender: TObject);
var
tStream: TMemoryStream;
begin
tStream := TMemoryStream.Create;
try
IdHTTP1.Get(EdtSource.Text, tStream);
tStream.SaveToFile(EdtTarget.Text);
ShowMessage(‘Download Success!’);
except
ShowMessage(‘Download Fail!’);
end;
tStream.Free;
end;

procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
Label1.Caption := BytesToStr(aWorkCount);
ProgressBar1.Position := aWorkCount;
Update;
end;

procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
begin
ProgressBar1.Max := aWorkCountMax; // Set File total size
Label2.Caption := BytesToStr(aWorkCountMax);
Update;
end;

[/pascal]

Github原始碼下載 : https://github.com/superlevin/downloadwithprocessbar

Delphi XE5也可以開發 Google Glass應用

來源: 

中午看到 Jim McKeeth秀出了他把Delphi XE5開發的程式裝在Google Glass上面了!

利用 SysCheck 找到Google Glass處理器是 ARMv7 PRocessor rev 3 (v71) ,系統版本則是 4.0.4 ,符合 Delphi XE5的需求。

在設計上可以使用 Google Mirror API 或 GDK

Google Mirror API是基於REST and JSON 的API,可以輕鬆使用Delphi XE5最新的TRESTClient元件做到。

HelloGlassProjectManager

JimWithGlass

Delphi XE5 App running on Google Glass

原文連結:Hello Google Glass from Delphi XE5

David I 在ZendCon2013的分享影片

Embarcadero裡的David I是我蠻崇拜的前輩,當了44年開發者也不厭倦。

在ZendCon裡示範用Delphi XE5使用 APIs, REST/JSON控制LED、quadcopter以及其他硬體。

螢幕快照 2013-10-31 上午11.18.58