Time of Update: 2018-12-04
初學DelphiI的人,由於各種原因,對DelphiI中的許多概念不能很好的理解,並由此帶來了許多的問題,或者是開發出的程式穩性不好,一會能運行,一會又不能運行;或者是遇到一個問題久思不得其解,還誤以為是DelphiI自身的BUG,等等這些,浪費了我們大量的時間、精力,也影響了我們的開發效率。 那麼如何才能避免這些錯誤了,盡量少走彎路了?筆者從事DelphiI開發多年,下面就把我的經驗總結介紹給大家,希望協助到初學DelphiI的朋友。 問題一:對類的概念理解不到位,程式開發中不能靈活運用。
Time of Update: 2018-12-04
在程式運行過程中,往往出現一些意外錯誤狀態而導致程式無法運行下去的情況。因此 在實現程式功能的同時,必須考慮如何處理常式運行過程中可能出現的各種異常情況。所謂異常是指打斷程式正常流程的、非常見或意外的狀態、開啟檔案時按路徑找不到檔案、不能分配所需的記憶體等。現本人結合實際就Delphi中異常的產生、來源以及實現異常處理的方法進行探討。 異常的來源
Time of Update: 2018-12-04
函數原型:procedure my_create_Form(FormClass: TFormClass; var Reference);var i, n, w: integer;begin try //開啟右上方動畫 //frm_MainPaper.Busy_av.Active:=true; screen.Cursor := crHourGlass; //建立視窗 Application.createForm(FormClass, Reference);
Time of Update: 2018-12-04
一些手機經常會沒有空間了,安裝軟體和照相一直提示沒有空間,非常讓人煩惱。首先手機串連電腦,尋找哪個檔案夾佔用空間最大,如果無用建議刪掉。判斷有用還是無用的標準,有好多人可能不知道怎麼判斷。建議使用goolge和百度查一下就知道了。.thumbdata3--1967290299和.thumbnails是安卓系統中相機和圖片的快取檔案,該檔案一般會佔用記憶體令人困惑的.thumbnails檔案
Time of Update: 2018-12-04
1:NullPointerException由RuntimeException派生出來,是一個運行層級的異常。意思是說可能會在啟動並執行時候才會被拋出,而且需要看這樣的運行層級異常是否會導致你的商務邏輯中斷。 2:null 指標異常發生在對象為空白,但是引用這個對象的方法。例如: String s = null; //對象s為空白(null) int length = s.length();//發生null 指標異常
Time of Update: 2018-12-04
一直用SocketConnection和服務端的傳輸資料在三層資料庫中,從來沒有注意到它們之間的資料轉送,只是想著,管它了,網路的事,前段時間在Delphi中的Demos中發現Demos/Midas/Intrcpt.dpr例子,呵呵,再看了半天的VCL發現可以將Client端發送的給Server的資料,和Server發送給Client的資料是可以進行壓縮的。呵呵,不敢藏私,Share給大家。1:準備工作,先delphi光碟片中的/info/extras/zlib/zlib.pas進行編繹,然後
Time of Update: 2018-12-04
物件導向基礎:OO基礎理解實現方式封裝把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者對象操作,對不可信的進行資訊隱藏。 繼承可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充。繼承概念的實現方式有三類:實現繼承、介面繼承和可視繼承。多態將父物件設定成為和一個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作。實現多態,有二種方式,覆蓋,重載。物件導向原則:OO原則理解單一職責原則就一個類而言,
Time of Update: 2018-12-04
Time of Update: 2018-12-04
一、問題的提出 Winzip是電腦使用過程中,備份和資料交換的常用工具之一。然而,在實際使用過程中,筆者發現Winzip在用來進行資料交換操作時有一些不盡人意的地方, 如: 1. 當將一個大的壓縮包分卷壓縮到磁碟片上時,操作者手頭必須有多張磁碟片才能完成資料包的轉存,這種情況如果發生在手頭只有一張磁碟片的情況下,可真的沒辦法。 2. 如果分卷儲存資料磁碟片中的某張磁碟片在寫入或讀出資料時發生錯誤,則上一過程必須重做 3.
Time of Update: 2018-12-04
我是比較喜歡用MSN的,因為它的資訊提示比較獨特,所有的聊天軟體都是彈出一個常規的Windows對話方塊,而它卻好像是從工作列裡冒出來的。想想了,在Delphi這樣的純OOP工具裡加一個API應該不難實現,花了十來分鐘終於搞出來了,以下是實現方法:
Time of Update: 2018-12-04
單例模式中涉及到了synchronized和volatile,在這小結下synchronized和volatile來控制對象和變數的並發訪問。易變成員變數修飾符volatile: volatile用於告訴VM:它不應當儲存變數的私人拷貝,而應當直接與共用拷貝互動。 volatile強調“讀”。在目前大多數的處理器架構上,volatile 讀操作開銷非常低 —— 幾乎和非 volatile 讀操作一樣。而 volatile 寫操作的開銷要比非 volatile
Time of Update: 2018-12-04
Function TForm1.ContoSQL(svr, uid, pwd, db: String): Boolean;Const constr='Provider=SQLOLEDB.1;Password=%s;'+ 'Persist Security Info=True;'+ 'User ID=%s;Initial Catalog=%s;Data Source=%s';Begin Result := False; try With ADOConnection1 Do
Time of Update: 2018-12-04
近期在做“資料庫切割工具”時,碰到了一些棘手的問題,經過多方打探、尋找,最終得以解決,現總結下來,給大家共用,免的大家以後在碰到類似問題時再耗費大量時間去尋找、去打探! 1、判斷輸入的路徑在伺服器上是否存在: 例如,要在用戶端執行一個建立資料庫的程式,資料庫要在伺服器上建立,但路徑可以手工輸入,這時就面臨一個判斷自已現在輸入的路徑在伺服器上是否存在的問題,免得在執行Create Database SQL時才報錯:找不到路徑。 具體方法如下: exec
Time of Update: 2018-12-04
自動化測試架構的基礎是鉤子,也就是常說的HOOK機制。但這在實際的應用過程中可能會遇到一些問題。 一旦要做鉤子,那麼就必須擷取函數地址。由於我原先設計的鉤子的目標函數,都是Delphi的內建函式,也就是說,這些函數在編譯之後,很難找到。 當然了,也是有幾種方式可以找到的: 將代碼植入到系統中,編譯的時候可以直接找到。 編譯的時候,帶上Map檔案,可以通過Map找到函數地址。測試架構以Dll的方式遠程注入。 Delphi中的包,可以公布這些函數的地址 前兩種方式,有一個最大的缺點,在於
Time of Update: 2018-12-04
1. delphi怎樣調用外部EXE檔案? uses WinProcs; . begin WinExec(……); . end. 和調用Pascal庫函數沒什麼兩樣。 2. Delphi
Time of Update: 2018-12-04
下面是Delphi資料庫應用程式中常見錯誤、原因/解決方案:資料感知控制項DataSource屬性未設定或者設定錯誤(連結為其他的DataSource) 原因:在設計時不小心改動,拷貝粘貼過程中未全部更改 測試時標準代碼中沒有資料,無法進行測試 解決:確定需要輸入資料的表格的先後順序,在依次輸入測試資料,再進行測試 wwFilterDialog中進行資料過濾時,應該顯示欄位列表的欄位沒有顯示,不方便輸入 解決:判斷欄位,尋找標碼填充欄位列表 運行程式時出現欄位未找到的錯誤
Time of Update: 2018-12-04
人們在利用Delphi開發資料庫應用程式時,經常使用表格控制項製作報表。靈活地使用表格控制項的OnDrawCell事件,可以完成一些特殊效果的顯示,能更好地滿足使用者需求。本文介紹靈活使用OnDrawCell事件的三個技巧。 動態更新表格行的顏色 有時需要在報表中動態更新表格行的顏色。例如,在供應商列表中,優先供貨的供應商用綠色顯示,其他的供應商用紅色顯示。此時可以在OnDrawCell事件中用如下代碼實現: if
Time of Update: 2018-12-04
擷取類的一個執行個體,最常用的兩種方法就是建立構造器和靜態Factory 方法。相對構造器,靜態Factory 方法的優勢: (1)靜態Factory 方法有名稱。同一個類的不同構造器只是在有無參數、參數長短和順序的不同。而靜態Factory 方法可以根據用法自訂名稱。 (2)在建立參數化型別執行個體的時候,可以簡化代碼。如Map<String , List<String>> m=new HashMap<String, List&
Time of Update: 2018-12-04
program Project1;uses Windows, Messages;{等待調用的過程, 用於在表單上繪製文本}Procedure OnPaint(h: HDC);const s = 'hello,world';begin TextOut(h, 10, 10, PChar(s), Length(s));end;{視窗回調過程}function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer):
Time of Update: 2018-12-04
一、右鍵---建立---文字文件,重新命名為 connection.udl 。二、雙擊開啟 connection.udl 按提示操作設定資料庫,選擇本地或遠端資料庫,配置好後退出。三、使用Delphi 控制項TADOConnection串連代碼: form1的OnCreate事件如下 try ADOC.Connected := false; ADOC.ConnectionString := 'FILE