2007年3月31日 星期六

VB.NET 裡的 ListView 自定排序

在VB.NET,或者說是 .Net Framework 2.0 裡ListView,提供了一個排序的 member function:Sort( ),但是這個sort預設的排序方法,是根據第一個subitem中的string來作排序,這麼一下來排數字的時候就相當的不便,在此,VB.NET提供了一個可以自定排序的方法,就好像C++裡的,我們會override "<" 這個 operator 一樣.

於是,我們就在專案裡新增一個class來實作IComparer這個interface:

Public Class Mysort : Implements IComparer
Function Compare(ByVal a As Object, ByVal b As Object) As Integer Implements IComparer.Compare
Dim c1 As Integer = Integer.Parse(CType(a, ListViewItem).SubItems(0).Text)
Dim c2 As Integer = Integer.Parse(CType(b, ListViewItem).SubItems(0).Text)

If (c1 > c2) Then
Return 1

End If

If (c1 < c2) Then
Return -1

Else
Return 0

End If

End Function

End Class

然後,把要排序的ListView,裡面的排序準則設成這個class的一個實體,再呼叫Sort,就會依我們方式來排序了
Dim mysort As New Mysort
Me.ListView1.ListViewItemSorter = mysort
Me.ListView1.Sort()

2007年3月25日 星期日

Vista 開發技術 - WPF

WPF 是 Windows Presentation Foundation的縮寫,簡單來說,可以想成是vista上的Windows API,具有新的外觀以及圖型效果,而且有新的設計哲學,由於是Microsoft下一代的開發技術,必定是未來開發Windows應用程式重要一環,雖然Microsoft在Visual Studio .NET 2007裡才會內建WPF,不過現在只要去MSDN網站上抓一些extension下來,一樣能使用WPF.

我的測試環境如下:
Windows XP SP2 CHT

Visual Studio .NET 2005 CHT

.NET Framework 3.0

Visual Studio Extention for .NET Framework 3.0

裝好 Extension 後打開 Visual Studio,新增專案一下,多出了WPF的選項

wpf1.jpg

.NET Framework 3.0 與 2.0 有個很大的不同,就是3.0是採用XAML來描述有關視覺的部分,也就是傳統的Form部分,而邏輯部分就用VB或C#來處理,在新增WPF專案後,在IDE裡也多出了一個XAML的視窗:

wpf2.jpg

XAML與C#的關係,就好像Apollo裡的MXML與Action Script一樣, 所有程式都可以只利用C#開發出來,而只有少部分的程式可以僅利用XAML開發,看來還是由C#主導一切,深入一點看,所有XAML的描述,都會在編譯時被轉成程式碼,只是扮演一個輔助的角色吧?

WPF的釋出,顯然是要與Apollo競爭,但它們仍有各自適合的地位,像是要開發Windows Vista程式時當然就是用Visual Studio + WPF,而有需要跨平台時,就可以考慮使用Apollo囉.

2007年3月17日 星期六

Intel 將推出 802.11n 晶片組

IEEE所制定的802.11n規格目前只到2.0版的草案,而Intel似乎等不及3.0版(預計今年六月寄出,八月確定),以2.0為基礎,發起connect with Centrino計畫,原因專案代號為Kedron的802.11n技術,正式命名為Intel Next-Gen Wireless-N.之前宣稱要在年初推出的Santa Rosa平台,至今仍未上市(有謠言說在今年五月才會正式推出),無論如何,下一代Intel平台上市後,就能夠使用擁有五倍以上的傳輸效能了

2007年3月15日 星期四

用wiimote來代替滑鼠及簡報器

由於wiimote本身是用藍芽與主機溝通,所以是不是只要寫個driver,就能拿來當作滑鼠使用呢?



答案是肯定的,而且已經有人寫出driver了,要做到這件事情,你必需要有
1. wiimote,就是wii的手把

2. 電腦,而且有藍芽設備

3. Internet

接著我們開始把wiimote與電腦 ”接” 在一起吧:

1. 首先我們先下載 GlovePIE,目前最新版本為0.29 載點

2. 把你的藍芽設備弄好,並搜尋電腦附近的藍芽裝置 (就是你的wiimote) ,同時,按下wiimote上的1,2鍵,這樣電腦就可以找到wiimote了








3. 連接上之後,我們解開剛下載的GlovePIE,並執行GlovePIE.exe



4. 選擇 File -> Open,先打開 WiimoteScripts\WiiMouse 0.1.PIE



5. 如此一來,便可以使用wiimote來操控滑鼠,A鍵就是右鍵,B鍵就是左鍵

但是WiiMouse這個script實在是不好控制,因為它只根據mote中的感測速度的sensor來做出反應,所以各位可以試試其它的script,像是WiiMouse IR.PIE,可以搭配wii所附的紅外線裝置來做定位,使mote更加準確

firefox2 好用的 extensions

IEtab 快速IE的工具,可以以分頁形式在firefox裡用IE看網頁

tab catalog 分頁預覽,功能同IE7裡的分頁預覽

plainoldfavorites 共享IE我的最愛,上方選單會多出IE裡的”我的最愛”

noscript 擋住script

2007年3月7日 星期三

[ubuntu] 在ubuntu中使用WPA加密的無線網路

實驗用的AP是FON,作業系統是ubuntu 6.10

先設定驗證資料

#wpa_passphrase SSID WPA_Key > /etc/wpa_supplicant/fonera.conf

#wpa_supplicant -BDwext -ieth1 -c/etc/wpa_supplicant/fonera.conf

再DHCP取得ip就可以了

#dhclient eth1

2007年3月2日 星期五

[ubuntu] 安裝gcin

ubuntu站台上的gcin已經很舊了,所以我們要加入新的站台
$sudo vim /etc/apt/sources.list
加入

deb http://www.calno.com unstable main

deb-src http://www.calno.com unstable main

$sudo apt-get update

$sudo apt-get install gcin im-switch

$im-switch -s gcin

重開X即可