在 C++Builder 2010 安裝 QuickTime Control 可以讓你在 project 中使用 QuickTime Player 的面板及其支援的功能,基本功能包含:Play, Forward, Rewind, Pause, Resume, Stop, NextFrame, PreviousFrame, GoToStart, GoToEnd, FullScreen, ResizeDisplay, CopyFrameToClipboard, SetAuidoVolume, AudioMute... 等等。支援的檔案格式:MOV, WAV, AIFF, AAC/ADTS, CAF, MP4 (AAC only)。
下列是以 C++Builder 2010 為安裝實例:
1. 按下功能表: Component\Import component...
2. 選擇:Import ActiveX Control 並按下 Next
3. 選擇:Apple QuickTime Control 2.0 (Version 1.0) 並按下 Next
4. 確認 Palette Page,預設是將 QuickTime Control 放在 ActiveX 這一頁,按下 Next
5. 選擇:Install to new package 並按下 Next
6. 輸入 Package name,例如:AppleQuickTime 然後按下 Finish
7. 接著 BCB 會開始編譯 QuickTime Control 並顯示安裝成功的訊息
在 project 中使用 TQTControl,若編譯時出現缺少檔案,如 QTOControlLib_OCX.h,一般可以在 ...\My Documents\RAD Studio\7.0\Imports 底下找到,將缺少的檔案加入 project 裡面應該就可以正常編譯了。(若是覺得檔案不好找,可以下載 Everything Serch Engin,它是個小巧好用的免費軟體、支援檔名隨打即找的快速搜尋器,只能找檔案,不能找檔案內容)
2010年6月12日 星期六
2010年6月11日 星期五
Free C/C++ library - Haru Free PDF Library
免費 PDF Library - Haru
這次要介紹的是一個可以在 C++Builder 上使用的 PDF library - Haru Free PDF Library。選擇它的主要原因是它不但 Free、開放原始碼,而且可以在我所熟悉的 C++Builder 上使用。除此之外,也提供各式各樣的 sample code ,且附上每份 sample code 所產生出來的 PDF demo 檔案,讓人在使用它之前就先有了不少安全感。
Haru 的特色:
1. 免費、跨平台且開放原始碼。
2. 提供許多有用的說明、連結、範例程式及其結果。
3. 以 ANSI C 編寫而成的,理論上可支援現代大多數的作業系統。
4. 你可以使用它來增加 PDF 的特色而不必了解其內部繁雜的結構。
支援的功能:
1. 可以在 PDF 文件上畫 lines, rectangles, circles, text, images (JPEG, PNG, RAW)。
2. 可以產生大綱 (outline)、文字註釋、連結註釋及投影片的效果。
3. 可以嵌入 Type1 和 TrueType 字型。
4. 可以使用 ISO8859 - 1~16,MSCP1250~1258,KOI8 - R 等字符集 (character sets)。
5. 支援中、日、韓 (CJK ) 字型及編碼。
6. 可以產生出加密的 PDF 文件…等功能。
在使用 Haru 之前要先到官網下載 source code 或 library (for MSVC),如果是下載 source code 就要自己編譯成 library。我是下載 libharu-2.1.0.tar.gz, 然後用 C++Builder 2010 編譯成 library,如果直接對 source code 編譯可能無法順利完成,原因有下列幾個:
*1. include\hpdf_config.h.in 這個檔必需改為 hpdf_config.h。
2. source code 裡面沒有附 png library 和 z library,如果會用到的話,要自己上網找。
3. 依 hpdf_config.h 裡面提供的項目,看自己需不需要用到,逐一定義它們,若是不清楚如何定義的話,不妨下載 libharu-2.1.0-vc8.zip 參考 MSVC8 的設定值如何設定。
*4. 若不使用 png 和 z library 的話,hpdf_config.h 要定義 #undef HAVE_LIBPNG 和 #undef HAVE_LIBZ。
5. 若還是編譯不過的話,照著錯誤訊息 debug 一下,應該可以產生 libhpdf.lib。
因為我之前有一段時間都在畫數位相機的 OSD (OnScreenDisplay),所以這套 library 用起來還滿順手的,只是 y 座標有時候會畫到反方向 (第一象限座標系)…接著談談利用它產生一份 PDF 檔的流程:
待續………
2010年6月10日 星期四
Free installer - Inno Setup
免費安裝軟體 Inno Setup
標籤:
Free
2010年6月4日 星期五
TImage_BmpResize
/** 將 Image1 的 bmp data 透過 StretchDraw 畫至 Image2 bmp buffer **/
/** Image2 的 Stretch 屬性設為 true, 可將 Image2 bmp data 的寬/高等比例顯示出來 **/
/** Image1 放在 FrmMain, Align=alNone, Stretch=true **/
/** Bn_Resize, Ed_ResizeWidth 及 Ed_ResizeHeight 放在 FrmMain **/
/** Image2 放在 FrmResize, Align=alClient, Stretch=true **/
void __fastcall TFrmMain::Bn_ResizeClick(TObject *Sender) // TButton
FrmResize->Image2->Picture->Bitmap->Width=Ed_ResizeWidth->Text.ToInt();
{
TRect resRect;
TRect resRect;
if( (Ed_ResizeWidth->Text.ToInt()<=0) || (Ed_ResizeHeight->Text.ToInt()<=0) ){
return;
}
resRect.top=0;
resRect.bottom=Ed_ResizeHeight->Text.ToInt();
resRect.left=0;
resRect.right=Ed_ResizeWidth->Text.ToInt();
FrmResize->Image2->Picture->Bitmap->Width=Ed_ResizeWidth->Text.ToInt();
FrmResize->Image2->Picture->Bitmap->Height=Ed_ResizeHeight->Text.ToInt();
FrmResize->ClientWidth=Ed_ResizeWidth->Text.ToInt();
FrmResize->ClientHeight=Ed_ResizeHeight->Text.ToInt();
FrmResize->Image2->Picture->Bitmap->Canvas->StretchDraw(resRect, FrmMain->Image1->Picture->Bitmap);
FrmResize->Show();
}
2010年6月3日 星期四
在 BCB 嵌入 QuickTime Player
在電腦上安裝完 QuickTime 軟體之後,還要在 BCB 上安裝 QuickTime 的 ActiveX 控制元件。接著建立一個 bcb project,在 Form1 上面放一個 TQTControl 並將其 Name 設定為 QT,各項功能的寫法可參考下面連結:
BCB 使用 QuickTime 的 SampleCode
BCB 使用 QuickTime 的 SampleCode
訂閱:
文章 (Atom)