1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          Delphi 教程

          來源:互聯網轉載 時間:2023-12-14 11:48:43

          1.點擊Project->ViewSource可以看到工程的代碼
          programProject1;

          uses
          Forms,
          Unit1in‘Unit1.pas’{Form1};

          {$R*.res}

          begin
          Application.Initialize;
          Application.CreateForm(TForm1,Form1);
          Application.Run;
          end.

          其中的application就是最基本的對象
          它代表一個工程,可以全局的操作整個程序,application是定義在forms單元里的,你在用之前先引用forms.
          雖然delphi是面向對象的,但是application是面向過程的,這是因為在程序剛建立的時候,是按順序從上到下執行,此時還沒有創建任何的對象,application是一個全局的過程變量.
          它的重要方法有以下幾個:
          Initialize:對全局程序進行初始化.就比如說你有2個窗體,form1和form2,里面分別有1個全局變量,一般在人們的理解上,這些全局變量在form創建時才擁有實例,但是實際上在application.initializel的時候就有了
          第二個重要的方法是run:
          它表明程序可以啟動,注意不是“啟動”,而是“可以啟動”.這個地方是delphi命名不規范的地方.
          如果按規范寫,應當是Application.CanRun:=True;但是delphi是簡寫成了run.
          接下來重要的方法是CreateForm:創建窗體.這個方法在使用dll內的窗體時更重要,因為只有它才能主動的修復dll入口,不然的話程序容易內存泄漏.
          還有一個是ProcessMessages:這個方法可以讓程序進入一個單獨的線程,從而使占用的cpu減少,并且可以跟據需要建立其他的線程.對于一些像瀏覽器之類的程序,需要同時打開多個頁面,或是其他的事情同時進行,這時就需要用ProcessMessages,不然程序將變得非常消息慢(換言之,消息就是線程的組成部分)

          在使用數據模塊時,如果連接的數據庫是access,則必須加入forms,activex單元,不然access接口會報錯,不然access接口會報錯,oracle也沒有.在數據模塊上一般放四種東西(…,加密算法控件,這個控件在webservice面板上(SOPDOM),用于將xml文件進行dom加密).

          第二個要講的是unit:如果你的程序中有許多全局的函數,那么應當將它們放入一個新的unit中,并使用///進行注釋.對于button.click等控件的事件可以不寫注釋,但是自定義的函數必須照///注釋書寫。你在函數名的上方輸入///f,它就會自動生成這個注釋框架,你只要把內容填進去就行了。

          第三個要講的是threadobject,幾乎所有的程序都不可能只有一個線程。對于一些需要在后臺進行,并且不能打斷前臺工作的程序,必須進入線程。
          unitUnit2;

          interface

          uses

          Classes;

          type

          abc=class(TThread)

          private

          protected

          procedureExecute;override;

          end;

          implementation

          procedureabc.Execute;

          begin

          end;

          end.
          必須要注意,Execute方法是抽象的,必須覆蓋。但是如果你想給它加上參數,比如說Execute(i:Integer),就不能使用override,而是必須寫在public下:procedureExecute(i:integer);reintroduce;方法后綴使用重發布。
          在一個程序里,可以擁有多個線程,但是在線程沖突的情況下,必須使用synchronize方法來防止沖突,這個方法是定義在classes單元內的公共方法,你在任何情況下都能使用它。
          (技巧:有些時候你可能會在窗體上放滿控件,這樣就選不中窗體了,這個時候可以點任何一個控件,然后不斷的按ESC,這樣它就會按父類的順序一級一級向上跳轉,最后會跳到窗體上。)

          第四個要講的是dll
          這個技術基本上所有程序都會用到,因為你永遠都不可能把所有的功能都寫在一個exe里,如果功能太多,寫在一起就無法維護,所以必須分開寫。
          結構:
          libraryProject2;

          uses

          SysUtils,

          Classes;

          {$R*.res}

          begin

          end.

          這個只是系統生成的,一般來說,還必須加入windows,messages,forms單元。如果你開發的dll給其他語言調用,還必須加上sharemem單元。編寫dll的方法和編寫exe的方法完全一樣。

          控件類:
          第一個重要的是actionlist。一般的編程語言,它的控件只有三個關鍵,屬性,方法和事件,但是delphi還有一個動作,這就意味著它能更方便的處理復雜的事情?;旧纤械目丶加袆幼?,它們被列在actionlist里面,根據你的需要可以調用它們。

          第二個講的是HTTPRIO,這個東西是用來操作webService的。webService是當前世界上最先進和有效的網絡服務方式。delphi通過httprio控件,可以調用一切存在的webService。

          第三個講的是TCPServer和UDPServer。TCP用于點對點的傳輸,可以傳文件,但是速度慢;UDP用于點對面的傳輸,不能傳文件,但是速度快。一般的網絡通信程序中,將這2種協議放在一起用。單純的發送信息用UDP,發送文件用TCP。它們的發送和接收方法都一樣:通過SendBuffer進行發送,Adata.ReadBuffer進行接收。

          再下一個,AntiFreeze。這個控件在開發網絡應用時是必需的,在很多情況下,比如說QQ,可能會有多個用戶同時向你發消息的情況,但是這些消息如果同時到達,就會引起阻塞。用antiFreeze控件可以將同時到達的消息放入一個線程,再按順序讀取,這樣就避免了因消息的同時到達而引起的程序故障。

          下面我給你講解一整個單元
          unitUnit1;

          interface

          implementation

          end.
          這是一個最簡單的單元,它擁有單元名,接口部分,實現部分,最后用end.來結束。
          接口部分用于進行定義,比如說類的定義,常量,變量定義,單元的引用,都能放在接口部分。
          實現部分用于實現接口部分的類,也可以聲明常量,變量或是引用單元,接口處引用和實現處引用的區別,就是接口引用沒有類實例,而實現引用有類實例,并且接口處聲明的常量,變量可被其他單元使用。對于一個單元,有時候需要initialization和finalization標識符,它們用于在單元載入前進行一定的操作,最常用的是

          initialization

          ActiveX.CoInitialize(nil);
          finalization

          ActiveX.CoUninitialize;
          finalization在單元被釋放后執行,一般進行的操作是將單元內的殘留對象清空。比如說單元內定義了form1,并且沒有手動的進行free,則可以在finalization中寫FreeAndNil(form1);

          ActiveX.CoUninitialize;
          但是對變量的賦值不允許放在initialization部分,因為initialization是在單元載入前執行的,那個時候單元內的變量還未被創建。finalization在單元被釋放后執行,一般進行的操作是將單元內的殘留對象清空,比如說單元內定義了form1,并且沒有手動的進行free。
          則可以在finalization中寫FreeAndNil(form1);在end.后面的代碼,編譯時被忽略。
          也就是說end.后面寫的代碼,編譯器不會檢查,但是要注意一點,那些代碼也會被編譯到程序內。有很多人喜歡在end.后面加一些亂寫的東西,這樣編譯后的程序在反編譯器面前就顯得非?;靵y,使別人不容易激活成功教程,這是一種保護自己程序的手段。

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          巢湖四中咋樣?巢湖四中的校園氛圍很好。最重要的是,四中這幾年一直在進步,升學率明顯提高。嗯,老師們...那個 具體來說??偟膩碚f,老師是通情達理的。;我遇不到那種無情的老師。巢湖市有哪幾所重點高中?巢湖市分為四縣一區。我不 對四個縣不太了解,除了這個縣最好的高中:——廬江中學,廬江縣,含山中學,——,含山縣,——無為一中,無為縣,——和縣一中。對于居巢區,我比較了解:巢湖一中是無可爭議的最好,也是...

          不銹鐵鍋和生鐵鍋區別?:首先,有生鐵和熟鐵,根據碳含量來區分。生鐵的含碳量為2%-7%,相對較高,并含有少量的錳、硫等元素。熟鐵一般是生鐵經過精煉后制成的,碳含量有所下降。生鐵鍋又稱鑄鐵鍋,由灰鐵直接熔化澆注而成。一般這種壺底厚,重量大。熟鐵鍋又稱精鐵鍋,由熟鐵鍛造而成。這種壺比較薄,但是柔韌性和延展性都很好。生熟鐵鍋各有利弊,要根據需要選擇。不銹鐵鍋和生鐵鍋區別?不銹鐵鍋和生鐵鍋都是鐵鍋,但不銹...

          什么是企業EAP?EAP(員工援助計劃)是一個員工心理援助計劃。其內容不同于心理咨詢。心理咨詢的對象是正常人,但這種“正?!敝饕c精神病的“不正?!毕鄬?。對于人們的心理健康來說,其實它不是一個二元變量,而是一個連續譜變量(從不健康到非常健康的連續譜),而這個連續譜是隨著時間而變化的。任何兩個普通人,他們的心理健康水平都是不同的,有的各方面都很健康,有的情緒方面很健康,但人際關系方面卻不是很健康。我...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>