2010年2月12日

[Flex]子元件傳事件給父元件

flex 3.4

子元件傳事件給父元件, 起初只是因為想從子元件跳到某個state,
在試過網路上其它方式都無法達成之後, 只好用這個方式, 而且在沒有時間繼續探究及學習的情況下, 只好先這樣用

子元件mxml

1.定義事件
<mx:Metadata>
 [Event(name="goToMenu", type="flash.events.Event")]
</mx:Metadata>

2.丟出事件
dispatchEvent(new Event('goToMenu'));


父元件mxml
1.指定event handler function

goToMenu: 事件名稱
onGoToMenu(): event handler function
<MyComp:InfoPanel goToMenu="onGoToMenu()" id="infopanel1">
</MyComp:InfoPanel>

 

2010年2月4日

gSoap遇到中文無法顯示

如果XML是使用UTF-8 encoding, 如



那麼在使用 gSoap時要能正確處理中文必須在

宣告proxy class之後, 呼叫



//enable UTF-8 encoding

soap_set_mode(proxy_obj.soap, SOAP_C_UTFSTRING);



如果是使用QT, 那接收傳回的char *字串, 只要使用

QString result_string = QString::fromUtf8(resp.xxx_Result);



便能正確顯示中文

2010年1月26日

ubuntu notes

Ubuntu 9.04

0.安裝開發東東
apt-get install build-essential bison flex texinfo

0.1變更root密碼
sudo passwd root


1.安裝gcc等開發的man pages
apt-get install manpages-dev
apt-get install manpages-posix-dev
apt-get install manpages-posix

2.安裝openssh server
apt-get install openssh-server

3.安裝 samba
apt-get install samba
修改增加一個分享資料夾 /etc/samba/smb.conf
增加使用者 smbpasswd -a xxxx
測試設定 testparm
/etc/init.d/samba restart

2010年1月4日

Flex builder 3 新增 project 基本設定

去年年初花了3個多月做了一個公司需要的軟體, 規模不大不小, 約1萬多行(是實際的XD), 但隔了8個月, 現在因為要幫部門做訂便當系統(別問我為什麼, 我也不想啊...), 因為還是不想寫 HTML/JSP, 所以打算還是用 Java / Flex來做, 想簡單弄一弄就好了..

今年的計劃都是要花好幾個月才做的完的...實在不想浪費時間在這上面...

然後就重新去抓了試用版的 flex builder / JDK / tomcat / blazeds / MySql, 結果新增一個project完, 再測試 Java remoting就"滅"了...(無法call rpc function)

全部忘光了!!!
全部忘光了!!!
全部忘光了!!!
全部忘光了!!!

Java當然還記得, 但flex / ActionScript 全部忘光了!!!

實在是, 愈不想浪費時...愈花時間啊...哎~想當初那個軟體也看個電子書就開始coding了..

節錄如下:

0.直接下載 blazeds 弄好的 turnkey server就好
1.新增 flex project, (create combined Java/Flex project using WTP要勾, 不要不勾)
2.新增 project第二頁 compiled Flex application location填成和你的 content folder一樣(預設 WebContent), 接著 Finish
3.在project名稱上按右鍵, 點Flex Server, 發現 Context root會是/WebContent, 將它改成Root URL之後的web application名稱(如 http://localhost:8080/test4, 這裏就改成test4)
4.修改 WEB-INF/flex/remoting-config.xml,寫一個簡單的 Java remoting class 測試

完..

好了..可以開始簡單的訂便當系統了... Orz

2009年12月19日

說 class 太多的人, 也會說 class 太少

因曾經寫過 Java 程式, 在當時的 Leader 為了彈性, 而利用眾多 Frameworks 再加上自己的創意打造出一個看起來不錯的程式架構, 不過當時初出社會的我倒是挺感冒的, 因為當時為了要下一道 SQL 的效果, 而必須要更動 10 個程式檔或 XML 檔。

講白一點就是,你今天要在網頁上寫一個新增使用者的頁面,所花的功夫可謂非常的不小。雖然我本人是贊同架構的重要,以及對重覆程式碼特別厭惡,但一個小小的動作需要大費周章,這對一個程式設計師不到10個人的軟體公司而言,個人覺得不是一件好事。

因此如果是自己的專案,總是希望去達到平衡點。

話說之後到了某個公司之後, 居然有個網路/通訊產品的輔助程式(就是utility,在電子公司最不被重視的一塊)要用Java來弄, 公司的其它工具大多是用BCB寫的, 而因為我之前寫過Java, 加上這個程式要用WEB當UI,所以就交給我了。不過這個專案主要是在 sockets上,所以UI方面我不太想用HTML/JSP,甚至是之前用的 frameworks"們"(struts,hibernate,spring,webwork),怕要花太多時間,所以不如學一下 Adobe 的 Flex, 用flash來做前端 UI...

因為怕以後接手的人不好維護, 所以一切從簡, class也不敢弄得太複雜(反正有人就是覺得全部的程式寫在同一個function最好...Orz...), 不過沒被那些 frameworks搞過的人還是覺得 class太多, 主要是公司裏主要是寫 C 程式, 雖然會用 C++編譯器,但還是會用 C 的想法去寫

雖然本人基本上沒什麼特別偏好 Java 或 C/C++, 或那一種 framework, 目前唯一"不太喜歡"的是 MFC ,哈...反正只要能快速及正確的完成任務就是好"工具"(所以現在的需求有了跨 Linux/Win/WinCE/Embedded我才用 QT, 用之前並沒寫過 QT..)。

話說這個案子第一版之後, 中間接了一個 Firmware 維護, 再來是另一個新的 utility, 要用 BCB 重新寫的, 這時我又更精簡的使用 class 數, 當然每個 class 會變得很肥, 因為程式碼多嘛..

這時我又聽到另一種聲音, class太少.........XD

哇咧, 這要我怎麼辦?!

所以"說 class 太多的人, 也會說 class 太少"啊...

其實 class 多少並不是重點, 更不是問題! 而是你想不想去了解程式才是最大的問題啊!

BCB 6 安裝後的二件事

1.請到 Tools -> Editor Options 在第一頁(General)Tab把 Undo after save打勾, Undo可是在開發過程中, 所能記憶最短程式片段的保存方式!!(應該沒有人寫幾行就commit到版本管理系統的吧?!)

2.如果你的程式有用到第三方元件, 請先到 ${BCB}/Lib安裝dclusr.bpk

如果在安裝元件時, 編譯時發生 TCustomOutline.. Link Error錯誤訊息, 請把 ${BCB}/Lib/bcbsmp.bpi 加到 requires 裏


註:${BCB}指的是BCB安裝目錄

2009年12月18日

QWT4.5.6 遇到QT 4.6

打算將開發中的專案升級到 QT4.6, 因為有用到 QWT, 所以順便一起升級, 結果在編譯QWT時, 用VC2005 編譯一直出現 qHash()..的錯誤訊息, 結果在網上看到一串滿"激烈"的討論串

QWT原作者與 QT Senior Product Manager的對答
http://www.mail-archive.com/qt4-

preview-feedback@trolltech.com/msg01358.html


最後沒時間研究 WHY 的我, 只好乖乖到 qwt_valuelist.h 把47~49行註解掉

// MOC_SKIP_BEGIN
//template class QWT_EXPORT QList;
// MOC_SKIP_END


不過以我的"嫩"英文看起來, 這位"Product Manager"還滿強硬與有程式底子的啊!


---話說要將 QWT 以DLL型式使用時, 請在你的專案中加一個定義QWT_DLL