目前日期文章:200605 (12)

瀏覽方式: 標題列表 簡短摘要
代號為 Bon Echo 的 Firefox 2 目前已推出 Alpha 3 預覽版,所謂的 Alpha 預覽版就是功能還不很完整,bug 還有一大堆的意思,只適合開發人員以及不怕死的玩家使用,一般人千萬不要用!



最近推出了 Alpha 3 版,你可以在這個網頁看到它的介紹。簡介如下:


  • 多了一種安裝方式。現在有「一般」、「完整」、「自訂」三種安裝。

  • 防止網站釣魚。現在 Google 工具列的防止釣魚功能,將會整合進新版的 Firefox。

  • 自動偵測搜尋引擎。若是正在瀏覽的網頁有提供搜尋引擎,在右上角的「搜尋引擎」下拉選單裡,會多出一個「加入XXX」的選單項目。

  • 加入搜尋建議。當你在搜尋引擎輸入要搜尋的字時,引擎會自動列出你最近輸入過的字,以及該搜尋網站的自動建議。(例如你用 Google 搜尋,就會列出 Google 的自動建議)


至於 Alpha 2 多了什麼東西,可以到這個官方中文網頁看看。





阿阿阿~~越來越期待 Firefox 2 了,好多套件的功能都整合進去了呢!不過等到正式版出來,我又得煩惱要把哪些套件移除了~XD







Nelson 發表在 痞客邦 PIXNET 留言(3) 人氣()



http://www.csie.nctu.edu.tw/~chtai/software/RainMeter/Mini-Meter.rar
除了先前的 Single 這個面板,最近又拿了另一個面板來改,我稱它為 4-Window,同樣的也是依我需求去改的,有在用筆電的人可以下載去玩看看。
  1. 可顯示 CPU,電池存量,實體記憶體剩餘量,日期,時間,網路速度,磁碟剩餘空間
  2. 每隔15秒鐘,會循環顯示電池存量/實體記憶體剩餘量
  3. 左鍵點擊左邊數來第二個方框,循環顯示電池存量/實體記憶體剩餘量
  4. 左鍵點擊右邊數來第二個方框,循環顯示日期/磁碟剩餘空間/網路速度
  5. 可自訂要顯示哪個磁碟機的剩餘空間
由 GaramMasala 這個面板修改而來。




這是給 Rainmeter 用的面板,昨天順手玩玩,拿出來獻醜一下。圖片是從其他面板拿來用的,內容則是依我的需求,慢慢加上去的。顯示的資訊有:
  1. 時間(AM/PM)
  2. 日期(星期,月 日)
  3. 電池電量
  4. CPU 使用率
會加上電池電量是因為我在用筆電,想要隨時知道還有多少電力,才能估計還可以用多久。面板很小,所以我可以把它拉到右上角,再最上層顯示。既不會防礙到我的操作,又可以一目了然。有興趣的可以自己改看看,或是我有空的話,或許也能幫你一下。
2006.03.09
+ 可偵測是否連到 A/C 電源線+ 可設定是否要顯示 A/C+ 可設定電量到達某一定值之後,改變顯示的顏色+ 改了一些顏色+ 多了一些變數,比較方便控制 + 調整面板大小

Nelson 發表在 痞客邦 PIXNET 留言(4) 人氣()

Updated:

我從 CC 2.0 改成 CC 2.5 了。



因為我還挺認同 CC 的遊戲規則的,再加上我本來就是希望愈多人使用免費軟體愈好,不過我也不想要我辛辛苦苦打出來的文章就這麼直接被 Copy 貼到別的地方。



所以,我決定採用 CC 授權 :)

Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Taiwan License.


想知道詳情的,請點選上方圖示,會有中文說明。很簡短,不到一頁。

若你懶得點,至少你必須知道,當你想要用我的作品(文章,軟體,教學)時,你得:



  • 附上我的名字,也就是 Nelson

  • 附上該篇作品的 link

  • 附上 CC 授權宣告

  • 若你改變、轉變或改作我的作品,必須遵守相同的授權條款,才可以散布你的衍生作品。

  • 如需用於商業行為(例如擷取片段或全部放在雜誌裡頭),得先徵得我的同意




我的網頁同時也改成 CC 授權了 :)

Nelson 發表在 痞客邦 PIXNET 留言(11) 人氣()

我們可以透過 ComponentCount 來掃瞄 Form 底下的所有元件,進而控制這些元件,例如底下這個 sample code 可以把 Form 底下的 Edit 元件一口氣改掉。

for (int i = 0; i < ComponentCount; ++i)

{

� � if (Components[i]->ClassNameIs("TEdit"))

� � � � ((TEdit *)Components[i])->Text = "我被改了";

}



那若是要改某個元件底下的子元件呢? 例如要改 GroupBox 裡頭的所有 Label 要怎辦呢? 這時就要用到 ControlCount 了。

for (int i = 0; i < GroupBox1->ControlCount; ++i)

{

� � if (GroupBox1->Controls[i]->ClassNameIs("TLabel"))

� � � � ((TLabel *)GroupBox1->Controls[i])->Caption = "我被改了";

}


這樣就可以了~


再補上一招,若是要修改名稱有固定規則的元件又要怎麼做呢? 例如要修改 Edit1~Edit10 的文字內容。這時我們可以叫出 FindComponent() 來幫忙

for (int i = 1; i <= 10; ++i)
{
� � ((TEdit *)FindComponent("Edit" + IntToStr(i)))->Text = "我被改了";
}

類似地,也可以用 FindChildControl() 找到子元件

for (int i = 0; i < 10; ++i)
{
��� ((TEdit *)GroupBox1->FindChildControl("Edit" + IntToStr(i)))->Text = "我被改了";
}


戲法人人會變,巧妙各有不同。透過以上三個例子,應該可以滿足大部分需要大量修改元件屬性的需求了。至於怎麼應用,就看個人的心思啦 :)






Nelson 發表在 痞客邦 PIXNET 留言(3) 人氣()

void __fastcall TForm1::ListBox1MouseUp(TObject *Sender,
����� TMouseButton Button, TShiftState Shift, int X, int Y)
{
��� if (Button == mbRight)
��� {
������� ListBox1->ItemIndex = ListBox1->ItemAtPos(Point(X,Y), true);
��� }
}


Nelson 發表在 痞客邦 PIXNET 留言(0) 人氣()

void __fastcall TformMain::CheckInstance(void)
{
��� Application->Title = Caption;
��� HANDLE PrevInstHandle;
��� Mutex = OpenMutex(SYNCHRONIZE, false, Application->Title.c_str());

�� �/* 檢查是否有重複執行 */
��� if (Mutex != NULL)
��� {
�� ��� �/*
�� ��� � *�� �若有重複,把之前的程式帶到前景,
�� ��� � *�� �再關閉本身
�� ��� � */
������� String AppTitle = Application->Title;
������� Application->ShowMainForm = false;
������� SetWindowText(Application->Handle, NULL);
������� PrevInstHandle = FindWindow("TApplication", AppTitle.c_str());
������� if (IsIconic(PrevInstHandle))
����������� ShowWindow(PrevInstHandle, SW_RESTORE);
������� else
������� {
����������� BringWindowToTop(PrevInstHandle);
����������� SetForegroundWindow(PrevInstHandle);
������� }
������� Application->Terminate();
��� }
��� else
������� Mutex = CreateMutex(NULL, false, Application->Title.c_str());
}
//---------------------------------------------------------------------------
void __fastcall TformMain::FormClose(TObject *Sender, TCloseAction &Action)
{
��� ReleaseMutex(Mutex);��� // 記得在結束程式前,要釋放為了避免重複執行而產生的 Mutex
}


Nelson 發表在 痞客邦 PIXNET 留言(1) 人氣()

有時候你可能會需要讓使用者在 Memo 貼上文字之後自動換行。要達到這樣的效果有幾種方法辦得到。第一種是在 OnMouseUp event 裡頭偵測使用者是否按下了 Ctrl+V。不過這方法並不是很好,所以在這裡我要介紹第二種方法。第二種方法是直接偵測送到 MemoWM_PASTE 訊息。



// 在 Unit1.h

private:��� // User declarations

��� TWndMethod OldMemoProc;

��� void __fastcall NewMemoProc(TMessage &Message);





// 在 Unit1.cpp

void __fastcall TForm1::NewMemoProc(TMessage &Message)

{

��� OldMemoProc(Message);

��� if (Message.Msg == WM_PASTE)��� // 若是貼上

������� Memo1->Lines->Add(""); � � �// 就自動換行

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

��� OldMemoProc = Memo1->WindowProc;

��� Memo1->WindowProc = NewMemoProc;

}




Nelson 發表在 痞客邦 PIXNET 留言(0) 人氣()

http://freesoftland.sytes.net/



Developer's Tips & Tricks (DTT) 是一款綠色且免費的程式碼管理工具,

裡頭已經內建了不少實用的程式碼片段,當然你也可以任意修改或增刪程式碼。

還有語法高亮度的功能,支援不少程式語言。



這個工具對時常寫程式的人很有用,

可以把一些實用的技巧(例如列出目錄下的檔案,刪除整個目錄之類)

或是把你到處收集的程式碼,都用這個來管理。

如此一來,以後有需要時,就可以直接複製出來用。





另外自推一下,我的 blog 也有整理了一些 BCB 的小技巧,

有興趣的人可以來逛逛。

http://www.wretch.cc/blog/Nelson&category_id=671620


Nelson 發表在 痞客邦 PIXNET 留言(0) 人氣()

http://blog.yam.com/chensumi/archives/1581922.html



在米果的牽線下,郭總的五顆簽名球,將要開始競標,

幫聖心教養院「敏道家園」新院區籌款。



詳情請看連結。



---

郭總的樣子好帥阿 <*_*>


Nelson 發表在 痞客邦 PIXNET 留言(0) 人氣()

http://plasticbugs.com/?page_id=294



Gimp 是一款免費且開放原始碼的繪圖軟體,雖然它是免費的,功能卻是非常強大的。可是介面跟大家常用的 PhotoShop 有一段差距,一開始可能不太好上手。

所以就有人把 Gimp 大大修改了一下,把它的介面改得跟 Photoshop 很像,希望可以降低使用的門檻。網頁上有擷取一些跟 Photoshop 比較的圖,大家可以自己判斷像不像 :)





Nelson 發表在 痞客邦 PIXNET 留言(0) 人氣()

【作者】geniustom

【內文】http://delphi.ktop.com.tw/topic.asp?topic_id=59601



一般人看到【取亂數不重複】..很直接的想法就是一直取,每次取完之後再跟之前的比較..

其實這樣的效率極差!取N個不重複的亂數需要做N階乘次比對..

有學過資料結構的應該都知道.在複雜度裡面..N階乘算是【極差】

取亂數可以使用洗牌法..

意思就是說..

1..假設剛買來的牌..有52張..分別照順序排好...

2..你只需要把52張牌全部攤開..隨便選2張交換...

3..交換52次之後..可以做出很平均的亂數處理..

所以..如果要產生A~B不重複的亂數.演算法如下..

var

Nums: array of integer;

i,j,k,temp: integer;

begin

randomize; 灑下亂數種子

setlength(Nums,B-A) //產生B-A張牌

for i := 0 to (B-A)-1 do

Nums[i] := i; //產生一副新牌..都是照順序排好的

for i := 0 to (B-A)-1 do

begin

j := random(B-A+1); //隨便選兩張牌(索引) 取出0~(B-A)的亂數

k := random(B-A+1);

temp := Nums[j]; //交換兩張隨便取的牌

Nums[j] := Nums[k];

Nums[k] := temp;

end;

for i := 0 to (B-A)-1 do

Nums[j]:=Nums[j]+A; //最後..把這邊的排全部變成A~B的值

end;



假如您要取5個..

那只要選Nums[0]~Nums[4]..就是一組很漂亮的亂數..

效率極佳..只需要O(n)次...

而一般人想到那種差勁的演算法..差不多到100..程式就要死當了


Nelson 發表在 痞客邦 PIXNET 留言(1) 人氣()

zFTPServer 是支小巧且容易上手的 FTP Server,它有許多有趣且有用的特色:

  • 虛擬檔案系統: 你可以在使用者或是群組的根目錄裡,任意掛載磁碟槽或是目錄。
  • SSL/TLS 連線:支援加密連線,最高可達 256 bits AES
  • 自動更新: 當偵測到新版本的時候,它會自動更新 (選擇性的功能)。
  • Scripts 控管:透過 TCP/IP,你可以寫個 script (例如 php 或 perl) 來完成新增/刪除使用者或群組
  • 遠端管理: Server 跟管理介面是分開的,這讓你能夠輕易的從遠端管理你的 Server。
  • UTF-8:透過 UTF-8 的支援,可處理多國語言。
  • 可做為系統服務: 內建支援 WindowsNT / 2000 / XP / 2003 的系統服務。
  • 超快傳輸速度: 在 100Mbit 的 LAN 上,可達到 11MByte/秒 的平均速度,這比市面上許多『有名』的 FTP Server 要出色得多了。
  • 被動模式的 Host/IP 選項: 在被動模式下,能為使用浮動 IP 的 Server 自訂一組 Host name,例如:myserver.no-ip.com
  • 功能強大的使用者及群組帳號管理: 使用者及群組能同時屬於多個群組。
  • 支援上傳平衡: 利用虛擬檔案系統,使用者上傳的東西會被丟到有足夠硬碟空間的地方。
  • 進階的 IP 管理功能: 能自訂不同 IP 或 Domain name 的存取權限,能允許或禁止從某些特定位址連線的使用者的存取權限。
  • 進階的帳號有效日期管理功能: 能夠設定在某些條件成立之後,帳號就自動到期。這些條件可以是在某個日期之後、幾天/週/月之後、下載達到一定量之後,或是其他。
  • 防止連線攻擊:可自動封鎖嘗試攻擊的連線,避免被惡意使用者暴力猜測密碼。
  • 多國語言介面: zFTPServer Suite 目前有英文版、瑞典文版、義大利文版,跟繁體中文版。
  • 它不用錢喔!!!

它的軟體及網頁中文化是由我負責的,這裡是它的官方網頁以及C.H.Weng重新設計的中文版網頁



等了好久好久,終於推出 2.0 版囉~最重要的更新就是加入了 SSL/TLS 支援,另外介面也變得更好看UTF-8 也支援得更完美了,此外也加上了在歡迎訊息裡頭加入自訂參數的功能。當然,還有修正一堆有的沒的 bug

想知道更多 zFTP 的使用技巧,請來這裡看看
http://vbb3.twftp.org/forumdisplay.php?f=70

想看看目前有啥 bug 或是想回報 bug,請來這裡
http://vbb3.twftp.org/forumdisplay.php?f=87

若是你想直接跟作者溝通,可去官方論壇看看
http://forum.serveftp.com/

附帶一提,在使用 zFTP 的八十幾個國家裡頭,台灣的使用率是第一名喔 ~XD
http://vbb3.twftp.org/showthread.php?t=7385

Nelson 發表在 痞客邦 PIXNET 留言(25) 人氣()