這期有Windows Script Host 下集,然後有介紹 Windows API 與類別圖。
- 8月 28 週日 201112:53
RUN!PC #55 1998-08
- 8月 28 週日 201111:23
RUN!PC #56 1998-09
製作不閃爍動畫:先介紹 PaintPicture,然後改用 BitBlt ,這樣雖然畫圖片夠快了,但還是不夠。接著再介紹用兩個 DC 來畫,首先用 CreateCompatibleDC 與 CreateCompatibleBitmap 建立 memory DC與memory bitmap,之後要畫的時候,再用 BitBlt 複製回表單的 DC,這樣就會快許多,然後背景繼續去畫另外一張。
- 8月 28 週日 201111:14
RUN!PC #57 1998-10
又再次看到MTS,突然想到Microsoft為什麼要把Transaction拉到系統層級?現在 Linux 上常見的 php/python/ruby...等Web框架也有transaction,存取資料庫時已經利用資料庫的transacton語法處理了,但好像都沒有拉到系統層級來處理。這是為什麼呢?
附上 python django 裡的 transaction 連結:Managing database transactions
附上 python django 裡的 transaction 連結:Managing database transactions
- 8月 28 週日 201101:51
RUN!PC #58 1998-11
IIS 4.0 那時就有 MTS 了說...
這期有篇文章是講NT備份的,講的挺仔細,而且都是利用原本NT就有提供的指令來做,相當不錯。基本上就是利用 at、schedular service、ntbackup 等來組合,然後執行命令的身份要注意,不要用到沒辦法讀取所有檔案權限的身份...
這期有篇文章是講NT備份的,講的挺仔細,而且都是利用原本NT就有提供的指令來做,相當不錯。基本上就是利用 at、schedular service、ntbackup 等來組合,然後執行命令的身份要注意,不要用到沒辦法讀取所有檔案權限的身份...
- 8月 27 週六 201121:56
RUN!PC #59 1998-12
CRC卡片上的資訊總共分為三大類:Class、Responsibility、Collaborator。文章內有介紹CRC卡的遊戲,就找小組成員到會議室,然後開始針對scenario去討論scenario的流程、參與者等等,並且去填CRC卡片,最後就會知道該分類出哪些類別與流程。
- 8月 27 週六 201111:14
RUN!PC #60 1999-01
scriptlet 可以用vbscript/jscript來建立activex 物件,理念很好,實際上需要註冊才能使用,小麻煩,所以後來沒有很盛行。
OCL主要是用來說明物件模型中一些類別屬性與操作的限制條件,或是在時序模型、互助模型中有關條件的敘述,簡單說就是用來描述物件的屬性、容器操作以及限制等等。
Fancy軟體撰寫守則Part 1:技巧1-套用程式設定字型:用TControl.SetDesktopFont,系統變更字型時,會送WM_SETTINGCHANGE或WM_WININICHANGE訊息給每個視窗。技巧2-自行選擇程式顯示字型:用TFontDialog與TFont技巧3-動態安裝及卸除程式專屬的字型:AddFontResource與RemoveFontResource技巧4-駐留工作列:TrayIcon與Shell_NotifyIcon。
OCL主要是用來說明物件模型中一些類別屬性與操作的限制條件,或是在時序模型、互助模型中有關條件的敘述,簡單說就是用來描述物件的屬性、容器操作以及限制等等。
Fancy軟體撰寫守則Part 1:技巧1-套用程式設定字型:用TControl.SetDesktopFont,系統變更字型時,會送WM_SETTINGCHANGE或WM_WININICHANGE訊息給每個視窗。技巧2-自行選擇程式顯示字型:用TFontDialog與TFont技巧3-動態安裝及卸除程式專屬的字型:AddFontResource與RemoveFontResource技巧4-駐留工作列:TrayIcon與Shell_NotifyIcon。
- 8月 27 週六 201110:12
RUN!PC #61 1999-02
這期的目錄裝訂錯誤,現在寄去可以退嗎? (笑)
這期開始介紹 Excel 的 VBA,除了可以操作儲存格,也可以弄出表單讓使用者輸入,很強大。後來的式微是因為 VBA macro 病毒的肆虐才慢慢不流行,畢竟大家都怕了。
三個好用的 c++ 小程式:都是用C++ builder做的。程式開始就最小化,這個sample是利用 timer,在 form 出來後一個短暫的時間後最小化。鬧鐘,一樣也是利用 timer 來作,並且去註冊 AutoRun,在開機時自動啟動,啟動時,會最小化到 system tray。畫出非方形的視窗, 先使用 CreatePolyPolygonRgn 去建立多邊形,再用SetWindowRgn去設定視窗有效區域,這部份要在FormShow的時候完成,並且在 FormResize、FormClose 時都要處理。
這期開始介紹 Excel 的 VBA,除了可以操作儲存格,也可以弄出表單讓使用者輸入,很強大。後來的式微是因為 VBA macro 病毒的肆虐才慢慢不流行,畢竟大家都怕了。
三個好用的 c++ 小程式:都是用C++ builder做的。程式開始就最小化,這個sample是利用 timer,在 form 出來後一個短暫的時間後最小化。鬧鐘,一樣也是利用 timer 來作,並且去註冊 AutoRun,在開機時自動啟動,啟動時,會最小化到 system tray。畫出非方形的視窗, 先使用 CreatePolyPolygonRgn 去建立多邊形,再用SetWindowRgn去設定視窗有效區域,這部份要在FormShow的時候完成,並且在 FormResize、FormClose 時都要處理。
- 8月 27 週六 201102:25
RUN!PC #62 1999-03
火昌華這期開始介紹Design Pattern,那時候應該就要認真看的,其實不難,不知道為什麼那時候會忽視然後跳過沒仔細看。
WSH 介紹檔案、資料夾的操作。
Fancy軟體撰寫守則 Part 3:這裡介紹的主要是C++ Builder的VCL,不過套用到一般Windows/.Net程式,大致原理差不多。技巧8-Shell links(讓使用者可以自行新增程式捷徑):主要要實作 IShellLink 介面。技巧9-Prevent Multiple Instance(同時間只執行一個的程式):第一個範例是用FindWindow 來避免重複 CreateWindow,這會受限於很多程式的Form Title可能都用TForm1而有麻煩。第二個則改用 Project Title 並改用 EnumWindows 來處理。技巧10-Drag and Drop in shell space(桌面物件的拖曳):先用DragAcceptFiles設定可收檔案,之後當使用者拖拉檔案到Window上放開時,window會收到WM_DROPFILES訊息,並得到 drop handle,這裡就可以根據 drop handle 去呼叫 DragQueryXXXX 等函式,以取得資訊並處理。技巧11-Form size and position(視窗位置大小的記憶):這裡是在開關Form時,去存取registry的值技巧12-系統關機時刻:當關閉視窗時,被觸發的事件依序為 FormCloseQuery、FormClose、FormDestroy。當關機或登出時,則是FormCloseQuery、FormDestroy,FormClose被忽視了。這裡的解法是在收到 WM_ENDSESSION 時去做清理工作,而不在FormClose時做。技巧13-Contact with author(e-mail回覆):就利用ShellExecute去open "mailto:someone@somewhere.com" ,就結了。
WSH 介紹檔案、資料夾的操作。
Fancy軟體撰寫守則 Part 3:這裡介紹的主要是C++ Builder的VCL,不過套用到一般Windows/.Net程式,大致原理差不多。技巧8-Shell links(讓使用者可以自行新增程式捷徑):主要要實作 IShellLink 介面。技巧9-Prevent Multiple Instance(同時間只執行一個的程式):第一個範例是用FindWindow 來避免重複 CreateWindow,這會受限於很多程式的Form Title可能都用TForm1而有麻煩。第二個則改用 Project Title 並改用 EnumWindows 來處理。技巧10-Drag and Drop in shell space(桌面物件的拖曳):先用DragAcceptFiles設定可收檔案,之後當使用者拖拉檔案到Window上放開時,window會收到WM_DROPFILES訊息,並得到 drop handle,這裡就可以根據 drop handle 去呼叫 DragQueryXXXX 等函式,以取得資訊並處理。技巧11-Form size and position(視窗位置大小的記憶):這裡是在開關Form時,去存取registry的值技巧12-系統關機時刻:當關閉視窗時,被觸發的事件依序為 FormCloseQuery、FormClose、FormDestroy。當關機或登出時,則是FormCloseQuery、FormDestroy,FormClose被忽視了。這裡的解法是在收到 WM_ENDSESSION 時去做清理工作,而不在FormClose時做。技巧13-Contact with author(e-mail回覆):就利用ShellExecute去open "mailto:someone@somewhere.com" ,就結了。
- 8月 27 週六 201102:19
RUN!PC #63 1999-04
bookmarklet 這時候就有了喔?! 我還以為是 05 年 ajax 開始盛行時才有的~
- 8月 26 週五 201100:26
RUN!PC #64 1999-05
function template:文章最後講到一個重點,我以前沒想到的。就是separation編譯模型,假定 module2.h 宣告了你的 template function,module2.cpp 裡則使用 export 來修飾你的 template function,以告知編譯器要保證當template function被實體化時,template的定義是可以使用的。簡單說就是沒有使用 export 的話,可能會有無法連結到某指定型別的 template function 的情況。描述的很差,表示我可能還不太懂,要找時間來試驗一下。