2015-02-11

一次清除 GroupBox 裡所有 CheckBox.Checked 狀態

procedure TMainForm.btnClearClick(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to GB2.ControlCount-1 do
    if GB2.Controls[i].ClassNameIs('TCheckBox') then
      TCheckBox(Gb2.Controls[i]).Checked:=False;
end;

2015-02-09

動態設定 FastReport frxReport 資料來源

procedure setRepDataSource;
var
  DB : TfrxADODatabase;
  Query: TfrxADOQuery;
begin
  with Main.frxReport1 do begin
    DB := TfrxADODatabase(FindObject('ADODatabase1'));
    DB.Connected := False;
    DB.DatabaseName := DM.ADOC1.ConnectionString;
    DB.Connected := True;

    Query := TfrxADOQuery(FindObject('ADOQuery1'));
    Query.Close;
    Query.SQL.Text:=DM.ADODataSet1.CommandText;
    Query.Open;
  end;
end;

2015-02-07

Delphi MainMenu 字型放大及Menu Checked 提示圖示不見解決方法

Delphi 預設 Menu 字型大小為8,想把它放大為12只要2個步驟即可:
  1. 在Project Source 中加上 Screen.MenuFont.Size:=12; 
  2. MainMenu -> OwnerDraw -> True
Menu字型放大後,點選MenuItem後若有設Checked屬性,會發現無法正常顯示提示圖示,原先想以ImageList顯示圖示為解決方案,後來發現只要加入ImageList並指定給MainMenu後即可解決這個問題,不必載入Bitmap icon也可正常運作:
  1. 加入 ImageList
  2. MainMenu -> Images -> ImageList1

2014-08-27

Indy IdUDPServer/IdUDPClient 接收傳送中文字

透過 Indy 套件的 IdUDPServer / IdUDPClient 收發訊息時,英文基本上一定是沒啥問題,但遇到傳送中文訊息,以Indy的預設編碼傳送後接收顯示為亂碼,很明顯是編碼出了狀況,測試的環境為Win7 + XE4,TextEncoding的功能參數必須 uses IdGlobal 才會正常,最初測試時試了半天找不到正確的參數,只好去 IdGlobal.pas 翻一下,找到這個:

















在使用 IdUDPServer / IdUDPClient 收發時,下列兩種方式都可以正常傳送顯示中文,以IdUDPClient為例,IdUDPServer 也適用:

測試環境:

  • Windows 7
  • Delphi XE4 測試版


uses IdGlobal;

..............

IdUDPClient1.Send(Edit1.Text, IndyTextEncoding_UTF8);

or

GIdDefaultTextEncoding := encUTF8;
IdUDPClient1.Send(Edit1.Text);


2014-06-12

Delphi XE? + dbexpress + sqlite3

這兩天空檔在弄個股票資訊蒐集的小工具當練功,想到要用sqlite來當資料庫,以SimpleDataSet來連接sqlite,但在開發階段Connection enable時老是會跳出"sqlite3.dll not found"的錯誤訊息,而且sqlite3.dll已放置在source code目錄下當然也放在win32/debug和win32/release目錄下,還是會出現一樣的錯誤,不過如果直接以執行檔的方式運行後再連接sqlite就可以,看樣子開發階段應該在某個地方也要放才對。
去問了大神找到這篇,原來這兩個地方也要擺,真的有效。

  1. 32bit 的sqlite3.dll 通常放在 C:\Windows\SysWOW64
  2. 64bit 的sqlite3.dll 就放在 C:\Windows\system32

2013-11-06

JSN ImageShow for JOOMLA - 增加 Image Max Size 項目

JSN ImageShowJoomla 上功能強大的圖片或照片播放模組,支援component、module和content plugin三種模式,檔案來源除了本機的目錄外也支援如 Picasa 這類的網路相薄。
在為首頁製作網路相薄播放區塊 + 網路相薄就以 JSN ImageShow + Phoca Gallery + Picasa 的組合來當成解決方案,照片檔經過縮小最佳化後丟在 Picasa 裡,再分別以 JSN ImageShow 和 Phoca Gallery 到 Picasa 讀取同一份相薄即可。
每個模組的設計需求理念不同,像Phoca Gallery 在以幻燈片模式播放照片時是指定在 640 x 480 的解析度在播放,它會自行將照片縮成 640 x 480,而 JSN ImageShow 就不會,而是以預設的 max-width : 1024 為播放標準。問題來了,因為 JSN ImageShow 是放置在首頁上的一個小區塊,只有 326 x 244 的大小,造成無法完整的顯示照片,所以必須讓 JSN ImageShow 可以將照片縮成 max-width 只有 326 來播放。

環境:

  • Joomla-2.5.14
  • JSN ImageShow Free - 4.6.0

  1. 在 Joomla 的管理模式裡,元件 → JSN ImageShow → Configuration → Image Sources → Picasa|See profiles →  Edit,可進到設定 max-width 的畫面

  2. 在最大影像大小的欄位上原本沒有326px 這個大小,所以要修改 source code來達成。

  3. 修改檔名 ./plugins/jsnimageshow/sourcepicasa/classes/jsn_is_picasaselect.php,找到 function getImageSizeOptions,把你需要的大小加入存檔即可。

2013-11-03

下載hichannel影片的方法其中之二

去年弄了一篇下載hichannel影片的方法其中之一,今年來弄篇之二,只是有點換湯不換葯啦,換個Browser而已。

環境:

  • Windows 7
  • Firefox-25.0
  • Net Transport-2.9.3
  1. 當然是開啟 Firefox 並連到 http://hichannel.hinet.net/ 囉!

  2. 選定你"心儀"的影片

  3. 選定點選後也許會看到需安裝外掛的畫面,不過這是好事,這樣我們就不用像之一一樣,要先中斷播放。

  4. 重點工具來了,請啟用"開發者工具列"。

  5. 點選右下角那個位置就可以看到工作頁面。

  6. 啟用"使用滑鼠選取元素"功能,想點左下還是右上皆可。

  7. 接著點選叫你安裝外掛的提示畫面,如果步驟正確應該會有個白色虛線外框,點選時下面的工具列也會顯示對應的Source Code。

  8. 接下來的步驟就和之一大同小異了,把反白的URI以 Ctrl + C 複製下來,為什麼用 Ctrl + C,而不用"複製內部HTML"咧?因為這個功能在Firefox-24.0版是正常的,但是到25.0版就掛了,所以..還是用 Ctrl + C吧。

  9. 把找到的URI整理一下,最好是變成反白的那個樣子,最好把http也換成mms,經過測試mms 的protocol下載是正常的。也許其他下載工具可接受經過urlencode後的URL,那你不換應該也可以。

  10. 最後就把整理出來的URL,新增下載工作、貼上、確定,給點耐性,如果這些步驟做完沒經過太久,隔一下子應該就會開始有動作了。Net Transport 操作有問題可參閱之一

  11. 如果連結失效的話,請再快速的重來一次吧。

    P.S.最後還是老話一句,技術要討論教學相長才會進步但請合法使用。

Google App Engine for PHP

一個偶然的機緣下發現這個訊息,找個時間試了一下,透過 Google Developer's Guide 的說明是試出來了,但是還是發生大眼睛看不見小字的習慣,而且人總是健忘的還是記一下吧!

環境:

  • Debian-7.2
  • PHP-5.4.4
  • Python-2.7.3
  • Google App Engine PHP SDK 1.8.3
重點:
  • 安裝照著 Developer's Guide 即可
  • 記得 php-cli 和 php-cgi 是不一樣的東西,確定有裝 php-cgi ,不然應該會看到這行錯誤
    "assert 'Content-Type' in message, 'invalid CGI response: %r' % stdout"
  • dev_appserver.py 預設是以 localhost 為Server IP,若測試環境Server/Client 是分開的,可以 --host 指定Server IP,如下:
    $> google_appengine/dev_appserver.py --host 192.168.13.128 --php_executable_path=/usr/bin/php-cgi helloworld/

2013-10-30

HighPoint RocketRAID 2310 RAID Management/ Inband Service for FreeBSD

年初代管一部ASUS 1U機架式伺服器,原先的管理者不知為何原因沒起動Raid,後來決定將系統重灌成Linux or FreeBSD,Linux中慣用的Debian內建沒RocketRAID-2310的driver,因為懶得再另外弄driver就決定裝FreeBSD。
FreeBSD內建有RocketRAID-2310的drvier,但是沒管理工具可監看raid的即時狀態,RR2310的Bios介面也粉陽春,一樣看不到現在raid的狀態,以至於更換H.D後是否有進行rebuild也不得而知,這部Server更囧了,連H.D讀取燈也沒看到在亮,當然也看不到H.D的故障燈號,還好H.D故障時會叫給你聽就是了。
後來在 HighPoint 官網找到支援FreeBSD的管理工具,安裝後運行正常。

環境:

  • FreeBSD-8.3-p12
  • HighPoint RocketRAID 2310
  • CLI-FreeBSD-3.5-1-100707.tgz

  1. 官網下載FreeBSD版本的CLI管理工具程式,下載時版本為v3.5-1,下載後解開可看到4支檔案,安裝可參考README.txt,HPT_CLI_Guide.pdf 為使用說明,其他為安裝檔。


  2. 安裝完成後啟動服務 /usr/local/etc/rc.d/hptdaemon.sh start,若正常可看到服務起動。


  3. 服務正常啟動後,執行 hptraidconf ,過程中會要輸入帳號密碼,請參閱HPT_CLI_Guide.pdf。


  4. 輸入query arrays,顯示目前已建立的raid,可以看到現行各raid的狀態,下圖可看到正在rebuild。


  5. 輸入query devices,顯示各H.D的狀態。


  6. rebuild完成,Status會由REBUILDING變成NORMAL。


  7. 它也有輸出log檔儲存使用及系統記錄,路徑及檔名為 /vat/log/hpt.log。


  8. 其他指令可在hptraidconf CLI畫面裡 key "help"即可。

2013-10-01

幫DBNavigator功能按鈕新增文字說明

Delphi裡的DBNavigator在資料庫程式中是常用的物件,但是預設只有圖示而沒有文字說明,雖然可以使用Hint,但使用上還有覺得少了些什麼,在網路上找了些資料並試作並把部份重點節錄下來。

環境:Win7 + Delphi XE4 試用版

uses
   Vcl.Buttons;

type
  TMyNavigator = class(TDBNavigator);

procedure TForm1.FormCreate(Sender: TObject);

const
   Captions: array[TNavigateBtn] of string = ('第一筆', '上一筆', '下一筆',
       '最後一筆', '插入', '刪除', '編輯', '儲存', '取消', '刷新', '確認更新', '取消更新');
var
   btn: TNavigateBtn;
begin
   for btn := low(TNavigateBtn) to high(TNavigateBtn) do
   with TMyNavigator(DBNavigator1).Buttons[btn] do
   begin
      Layout:=blGlyphTop;
      Caption:=Captions[btn];
   end;
end;

成果:


2013-08-17

hichannel radio 改版中?

[2015/06/08EzNetRadioU4.40F 

前兩天把EzNetRadio開起來想聽聽古典樂,因為午休時想說聽個古典樂助眠是個不錯的選擇,東點西點才發現有些站台失效連不上有些卻正常,卡好更睡不著...
利用放假天測了一下,才發現hichannel的廣播正悄悄在改版中。之前使用Microsoft的技術,使得chrome和firefox的使用者可能無法正常收聽,改版後的chrome和firefox皆可正常收聽。



既然EzNetRadio部份的站台無法正常收聽就代表它又得改版了,查了下hichannel的新方法,應該是使用 flowplayer.org 的解決方案。


flowplayer.org 主要是應用在web上的解決方案,EzNetRadio是個AP,要再想想怎麼兜...

2013-04-26

Joomla 後台管理選單及文章分類排序不動?

Joomla的選單及文章分類可以依管理人員需求進行排序。最近在構思一個新站台,花了1天的時間以舊站的結構弄了個sample site,在結構確定後再來調整,但在後續調整時,發現某個文章分類無法上調的問題。試了半天後把垃圾筒內的文章分類清掉,這個狀況就解除啦!!

2013-04-17

Joomla 2.5.x 文章相關細部欄位

Joomla的文章列表方式主要分成清單和Blog兩種,清單列表只能顯示標題、發佈日期、作者和點擊數等四個欄位,想以標準的Joomla實現"分類"的最新消息,也就是顯示最新消息的子分類,是無法實現的。
後來以[Multicategories]解決分類的問題後,一直沒搞定清單顯示分類的問題,問題是沒找到"分類"的變數到底是category?categories????後來在不經意的狀況下看到了下圖,原來是"category_title",剩的就只是修正程式碼了。
這裡面應該包括了一篇文章所有相關的欄位了吧?我想。
































檔案位置:/components/com_content/models/category.php
增加清單列表欄位,檔案位置:/components/com_content/views/category/tmpl/vim default_articles.php

2013-04-09

Re-Join Physical Disk to VDisk RAID

公司有部 HP2000 G3 iSCSI Storage,上星期其中一顆HD掛點,報修拿到新HD後當然直接插回原來的slot,但是狀況跟一般的Raid不太相同,一般的Raid卡通常會直接進入Rebuild的程序,但是HP2000在測完HD後,HD並沒有一如預期的直接Rebuild,而新HD的狀態只顯示"AVAIL"。
 後來在 HP Support Forums 找到下面的程序。












這個程序完成後狀態就變成這樣啦,就等吧!!



2013-02-24

以Aptana整備Joomla開發環境

最近發現了個Web程式開發的好工具Aptana,聽說是從Eclipse發展出來的。斷斷續續的使用Joomla這個CMS,雖然Joomla有一狗票extension,但是還是有自己試試看的想法。
Aptana上已整合了Wordpress、Drual的bundle,不過還不支援Joomla,不過網路上已有相關說明囉!

http://www.youtube.com/watch?v=k6bl--auCsY
http://www.youtube.com/watch?v=4HCqomfey34

2013-02-11

2012-12-22

hichannel radio 列表










hichannel的網路電台服務應該是目前大家收聽來源的大宗,中華電信也陸續將一些站台加上DRM,今天興起用程式算了一下,當下未加保護的有53台,已保護的有44台。
不過部份的站台是兩者兼具的,例如:BestRadio 高雄港都電台是"RADRM012",其實使用"RA000012"也是可以的,收聽時的連結可以使用mms://bcr.media.hinet.net/RA000012、http://bcr.media.hinet.net/RA000012,以下是當下hichannel的網路電台列表:


Aliyang原住民族網路廣播電台=RADRM032
AppleLine 蘋果線上=RADRM001
ASIAFM 亞太電台=RADRM002
ASIAFM 亞州電台=RADRM003
ASIAFM 衛星音樂台=RADRM004
BestRadio 台中好事=RADRM010
BestRadio 台北好事=RADRM013
BestRadio 花蓮好事=RADRM011
BestRadio 南方之音=RA000044
BestRadio 高雄港都=RADRM012
BravoFM 台北都會音樂台=RA000081
Classical 台中古典音樂台=RADRM041
E-Classical 台北愛樂=RA000018
Flyradio 飛揚調頻=RADRM019
HitFm聯播網 中部=RA000035
HitFm聯播網 北部=RA000036
HitFm聯播網 宜蘭=RADRM065
HitFm聯播網 南部=RA000034
ICRT=RA000038
IC之音=RADRM037
igo 531=RADRM006
KISS RADIO 大眾廣播電台=RA000040
KISS RADIO 網路音樂台=RA000042
needs RADIO=RADRM039
NEWS98新聞網=RADRM073
Nice923 宜蘭生活廣播=RADRM086
POP Radio 台北流行音樂電台=RA000080
RTI央廣 FM=RADRM060
RTI央廣 亞洲頻道=RADRM059
RTI央廣 音樂=RADRM061
RTI央廣 國語=RADRM063
RTI央廣 歐美及方言=RADRM062
uni radio 環宇電台=RADRM020
WowRadio文藻網路音樂台=RADRM078
大千電台=RADRM067
大愛網路電台=RADRM017
大漢之音=RADRM021
中廣流行網 i like=RADRM009
中廣音樂網i radio=RADRM007
中廣新聞網=RADRM008
中廣寶島網=RA000005
太陽電台=RADRM064
古都電台=RADRM085
台灣之聲=RADRM046
正聲大發台=RADRM095
正聲太保台=RADRM093
正聲北港台=RADRM091
正聲台中一台=RADRM088
正聲台中二台=RADRM089
正聲 台北調幅台=RADRM015
正聲 台北調頻台=RADRM016
正聲台東台=RADRM096
正聲宜蘭台=RADRM097
正聲音樂派=RA000098
正聲高雄台=RADRM094
正聲雲林台=RADRM090
正聲嘉義台=RADRM092
全國廣播=RADRM068
全國廣播音樂網=RADRM047
快樂聯播網-台北=RADRM082
快樂聯播網-高雄=RADRM084
快樂聯播網-嘉義=RADRM083
佳音現代聖樂網=RADRM031
佳音經典音樂網=RADRM030
佳音電台=RADRM029
奇美古典音樂網=RADRM014
青春線上=RADRM079
非凡音電台=RADRM071
城市廣播網-台中城市廣播=RADRM028
城市廣播網-台北健康電台=RADRM027
飛碟電台=RA000072
真心之音廣播電台=RADRM033
高屏溪客家廣播電台=RADRM045
崑山科大 EKHO Radio迴音線上=RADRM087
最愛生活頻道=RADRM022
復興廣播電台 第一網=RADRM024
復興廣播電台 第二網=RADRM025
復興廣播電台 短波網=RADRM026
新客家廣播電台=RADRM048
漢聲光華網 中波=RADRM075
漢聲光華網 短波=RADRM077
漢聲廣播電台=RADRM074
漢聲廣播電台 全國調頻網=RADRM076
臺北廣播電臺 都會資訊頻道=RADRM070
臺北廣播電臺 喔海洋頻道=RADRM069
寶島客家廣播電台=RADRM023
寶島新聲廣播電台=RADRM066
寶島聯播網 高雄主人電台=RADRM043
警廣 台中台=RADRM053
警廣 台北台=RADRM050
警廣 台東台=RADRM058
警廣 台南台=RADRM054
警廣 全國交通網=RADRM049
警廣 宜蘭台=RADRM057
警廣 花蓮台=RADRM056
警廣 高雄台=RADRM055
警廣 新竹台=RADRM052

2012-11-11

新發現 - 正聲音樂派

[EzNetRadio] 這兩天才發現收聽某些站台會有些問題,修正完後在測試每個站台的狀況時,發現一個不知是何時出現的站台"正聲音樂派",正聲給我的刻板印象是個有夠老的電台,實際上是不是我想的那樣就不得而知了。
正聲音樂台的性質和KISS RADIO網路音樂台的特性很像,就是一直的播送著音樂,發現這個站台剛好替補了我對KISS RADIO網路音樂台的需求。

2012-10-01

VMware vSphere Client 登入 ESXi5 錯誤

工作的地方目前選用VMware ESXi 5做為虛擬化的解決方案,但是第一次裝完vSphere Client登入Server時會產生這個錯誤訊息

解決的方法如下:
  1. 開啟IE連到ESXi並檢視憑證

  2. 選擇安裝憑證

  3. 點選下一步

  4. 自行選擇憑證存放區在"信任的根憑證授權"

  5. 點選完成

  6. 確認安裝憑證
完成安裝後就應可正常登入ESXi Server。



2012-09-28

proftpd.conf 設定多行DefaultRoot

參考:



工作文件的交換存放在FTP Server上,並選用ProFTPD,為了調整權限東找西找,找到了上面的文章,可以在proftpd.conf設定多個DefaultRoot,也快速解決我的問題,格式如下:

DefaultRoot     路徑 群組
ex:
DefaultRoot     ~ jailed
DefaultRoot     ~/../.. othergroup