Time of Update: 2018-12-06
Page Controller的實現需要在基類中為頁面的公用部分建立代碼,但是隨著時間的推移,需求會發生較大的改變,有時不得不增加非公用的代碼,這樣基類就會不斷增大,您可能會建立更深的繼承階層以刪除條件邏輯,這樣一來我們很難對它進行重構,因此需要更進一步對Page Controller進行研究。 Front Controller通過對所有請求的控制並傳輸解決了在Page
Time of Update: 2018-12-06
QTP預設的指令碼為qfl指令碼,是unicode 編碼。在引用指令碼的時候可以在QTP的介面上進行設定,也可以通過函數來載入一個指令檔,我比較喜歡用一後者,因為方便。當我用ExecuteFile來載入vbs指令碼的時候發現是不可以的,因為QTP產生的vbs指令碼預設是unicode編碼,我們需要將vbs檔案重新儲存了ANSI才可以,轉了檔案格式後終於可以用了 ^_^.但同時又出現了另一個問題,就是如果使用ANSI編碼那麼我們指令碼中的中文字元就無法在英文的作業系統下識別,會引起指令碼運行失敗。
Time of Update: 2018-12-06
下來會分享如何擷取子控制項的IAccessible介面,在這個之前先講點其它的東西:擷取控制項如果使用Findwindow(FindwindowEx)我們需要知道的控制項的ClassName和CaptionName,這兩個資訊可以通過Spy++等工具擷取,但我們在測試載入器中會常見到Role等很多屬性,先看這些資訊是從什麼地方來的,在microsoft的網站上下載Inspect32.exe運行後如: 上面告訴了我們一個控制項的詳細資料,現在我們只關心classname, role, name。
Time of Update: 2018-12-06
重複的代碼(Duplicated Code) 過長的函數(Long Method) 過大類(Large Class) 過長的參數列(Long Parameter List) 發散式變化(Divergent Change) 霰彈式修改(Shotgun Surgery) 依戀情結(Feature Envy) 資料泥團(Data Clumps) 基本型別偏執(Primitive Obsession)
Time of Update: 2018-12-06
MSG_WM_CREATE LRESULT OnCreate(LPCREATESTRUCT lpCreateStruct); MSG_WM_INITDIALOG LRESULT OnInitDialog(HWND hWnd, LPARAM lParam); MSG_WM_COPYDATA LRESULT OnCopyData(HWND hWnd, PCOPYDATASTRUCT pCopyDataStruct);
Time of Update: 2018-12-06
BaseHTTPServer.HTTPServer是python中一個很好用的夠簡單的http伺服器的庫,但是它的stop_server方法是空的,所以開始用的時候老是不知道怎麼才能關掉它,瞭解後終於找到了方法,備忘一下: class HttpServer(BaseHTTPServer.HTTPServer): def serve_forever(self): self.stopped = False
Time of Update: 2018-12-06
項目中需要記憶使用者上次操作的設定項(Preference),也就是不通過Preference的逐級選擇找到最終的Preference,解決方案:需要啟動的是PreferenceScreen,Demo如下:PreferenceScreen ps = (PreferenceScreen)
Time of Update: 2018-12-06
1、安裝wing ide 3.x2、解壓wingide-crack,將解壓後的WingIDE.exe 和Python25.dll Copy到wingIDE安裝目錄的Bin下;3、運行wing3.X,出現license視窗,輸入類似這樣的字元CNxxx-xxxxx-xxxxx-xxxxx (x =1-9);(直接填寫CN111-11111-11111-11111),點擊“continus”,4、這一步的第二個選項有個request
Time of Update: 2018-12-06
Context有什麼作用,很多地方都用到它,這裡Android123給這些新入門的網友做個簡單的解釋: Context字面意思上下文,位於framework package的android.content.Context中,其實該類為LONG型,類似Win32中的Handle控制代碼,很多方法需要通過
Time of Update: 2018-12-06
現在用Ext+Struts2開發項目,遇到了一個問題,RadioGroup中的Radio選擇了其中一個之後,另一個不能自動的設定為未選中,今天寫了個測試程式,終於成功了,把代碼貼出來以供本人及同行日後參考。Ext.onReady(function(){Ext.QuickTips.init();var adminRadio=new
Time of Update: 2018-12-06
一:列檔案清單 1. List (gdb) list line1,line2 二:執行程式 要想運行準備調試的程式,可使用run命令,在它後面可以跟隨發給該程式的任何參數,包括標準輸入和標準輸出說明符(<和>)和外殼萬用字元(*、?、[、])在內。 如果你使用不帶參數的run命令,gdb就再次使用你給予前一條run命令的參數,這是很有用的。 利用set args 命令就可以修改發送給程式的參數,而使用show args 命令就可以查看其預設參數的列表。 (gdb)set args –
Time of Update: 2018-12-06
K-MEANS演算法: k-means 演算法接受輸入量 k ;然後將n個資料對象劃分為 k個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似性較高;而不同聚類中的對象相似性較小。聚類相似性是利用各聚類中對象的均值所獲得一個“中心對象”(引力中心)來進行計算的。 k-means 演算法的工作過程說明如下:首先從n個資料對象任意選擇 k 個對象作為初始聚類中心;而對於所剩下其它對象,則根據它們與這些聚類中心的相似性(距離),分別將它們分配給與其最相似的(聚類中心所代表的)
Time of Update: 2018-12-06
vi編輯器是所有Unix及Linux系統下 標準的編輯器,它的強大不遜色於任何最新的文字編輯器,這裡只是簡單地介紹一下它的用法和一小部分指令。由於對Unix及Linux系統的任何版本,vi 編輯器是完全相同的,因此您可以在其他任何介紹vi的地方進一步瞭解它。Vi也是Linux中最基本的文字編輯器,學會它後,您將在Linux的世界裡暢 行無阻。 1、vi的基本概念 基本上vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last
Time of Update: 2018-12-06
對上邊文章改進了一下,通過一個函數: function check(r,b){ var firstRadio=Ext.getCmp('radio0'); var secondRadio=Ext.getCmp('radio1');
Time of Update: 2018-12-06
這幾天一直在忙一個煤礦上的項目,由於客戶要求所有的頁面預設要處於編輯模式,剛開始感覺沒有什麼難的,用Textbox控制項自訂gridview就OK了,可是後來的一個頁面用這種方法就沒法解決了。冥思苦想~~~ 終於讓我發現了一個更好的讓gridview自動處於編輯模式的方法。 gridview控制項有兩個方法:OnRowDataBound和OnRowCreated,在OnRowDataBound中取出cell中的值存入TextBox,然後把Textbox加入Cell
Time of Update: 2018-12-06
女朋友考試要用,幫她寫一下,自己也順便學習了,記下來,以後參考。 1: /*輾轉相除法基於如下原理:兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數。 2: 例如,252和105的最大公約數是21(252 = 21 × 12;105 = 21 × 5); 3: 因為252 − 105 = 147,所以147和105的最大公約數也是21。在這個過程中,較大的數縮 4: 小了,所以繼續進行同樣的計算可以不斷縮小這兩個數直至其中一個變成零。這時,所剩下的 5:
Time of Update: 2018-12-06
昨晚搞了一夜,老是解決不了這個錯誤,今天早上起來重新試了一下,還是不行,檢查設定檔,name、package配置都沒有錯誤,在瀏覽器中直接輸入action的地址,後台竟然有反應,可以排除設定檔的錯誤了,重新檢查了一下jsp檔案,原來不小心刪除了MyEclipse自動產生的路徑代碼,也就是: <%String path = request.getContextPath();String basePath =
Time of Update: 2018-12-06
第一種:Map map = new HashMap();Iterator iter = map.entrySet().iterator();while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue();}效率高,以後一定要使用此種方式!第二種:Map map = new HashMap()
Time of Update: 2018-12-06
查看函數庫裡的詳細情況和用多個對象檔案產生一個庫檔案。 1. 常用法: a. ar -t libname.a //顯示所有對象檔案 b. ar -rv libname.a objfile1.o objfile2.o ... objfilen.o //把objfile1.o--objfilen.o打包成一個庫檔案 2. 選項
Time of Update: 2018-12-06
.9.png檔案是一種可以被android系統利用的可展開圖片,可以使用draw9patch.bat工具處理普通的png檔案來產生.9.png檔案,這種經過處理的檔案被稱為.9.png的“源檔案”,此時用圖片瀏覽工具開啟該檔案可以看到圖片的周圍是一圈單像素,呈現黑色的像素點就是我們使用draw9patch.bat工具畫上去的,當我們把圖片放在res/drawable檔案夾後,使用android編譯之後,解壓apk包,可以看到雖然res/drawable下的.9.png檔案仍然存在,但是使用圖片瀏