Time of Update: 2018-12-07
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5:
Time of Update: 2018-12-07
之前已經有了兩種多線程的同步方法:CriticalSection(臨界區) 和 Mutex(互斥), 這兩種同步方法差不多, 只是範圍不同;CriticalSection(臨界區) 類似於只有一個蹲位的公用廁所, 只能一個個地進; Mutex(互斥) 對象類似於接力賽中的接力棒, 某一時刻只能一個人持有, 誰拿著誰跑.什麼是 Semaphore(訊號或叫訊號量)呢?譬如到銀行辦業務、或者到車站買票, 原來只有一個服務員, 不管有多少人排隊等候, 業務只能一個個地來.假如增加了業務視窗,
Time of Update: 2018-12-07
GDI+ 有五種畫刷:實心畫刷: IGPSolidBrush陰影畫刷: IGPHatchBrush紋理畫刷: IGPTextureBrush線性漸層畫刷: IGPLinearGradientBrush路徑漸層畫刷: IGPPathGradientBrush它們分別有對應的實作類別:TGPSolidBrushTGPHatchBrushTGPTextureBrushTGPLinearGradientBrushTGPPathGradientBrush.五個畫刷都繼承自 IGPBrush, 但
Time of Update: 2018-12-07
概念的定義 概念的定義:用精鍊的語句將概念的內涵提示出來 , 即揭示概念所反映對象的特有屬性或本質屬性。定義可以分為實質定義和詞語定義。實質定義揭示概念所反映對象的固有屬性或本質屬性。其基本方法是:被定義概念=屬概念 + 種差;即先概括(找屬概念)後限制(找種差)。實質定義又可以分為:性質定義:揭示概念所反映的對象的性質的定義。發生定義:揭示概念所反映的對象的產生或形成過程。功用定義:揭示概念所反映的對象的功能或作用的定義。關係定義:揭示概念所反映的對象與其他對象的關係的定義。
Time of Update: 2018-12-07
本例:代碼檔案:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls;type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; procedure
Time of Update: 2018-12-07
本例:代碼檔案:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls;type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; procedure
Time of Update: 2018-12-07
//最常用的 stringvar str: string; {定義}begin str := '萬一'; {賦值} ShowMessage(IntToStr(Length(str))); {長度是: 4}end;//長字串 AnsiString; 在目前的版本(2007)中的預設狀態下, String 就是 AnsiStringvar str: AnsiString;begin str := '萬一'; ShowMessage(IntToStr(Length(str)));
Time of Update: 2018-12-07
多色漸層需要: 一個 "顏色數組" 和一個 "位置數組" (0-1 之間的位置比例);IGPLinearGradientBrush.InterpolationColors 屬性對應一個 IGPColorBlend 對象, 此對象專門用於裝載上面兩個數組.IGPColorBlend 的 Colors 和 Positions 兩個屬性分別對應這兩個數組.下面的三個樣本的結果都是一樣的.測試:測試一, 使用開放數組參數構建 IGPColorBlenduses GdiPlus;procedure
Time of Update: 2018-12-07
IGPPrivateFontCollection.AddFontFile: 從檔案載入字型;IGPPrivateFontCollection.AddMemoryFont: 從記憶體載入字型AddFontFile 測試:uses GdiPlus;function GetFontsDirectory: string;var Len: Integer; buf: array[0..MAX_PATH-1] of Char;begin GetWindowsDirectory(buf, Length(
Time of Update: 2018-12-07
TClientDataSet 中計算欄位有兩種: Calculated(計算欄位)、InternalCalc(內部計算欄位).兩者區別是: Calculated 在每次需要時都要重新計算; InternalCalc 只需要計算一次.Calculated 需要計算的時間, InternalCalc 需要存取的時間; 當然後者快.計算欄位不會被儲存到檔案.下面的例子先定義了兩個整數欄位: sum1、sum2; 又定義了兩個計算欄位: SUM(求和)、MUL(求積), 分別指定了
Time of Update: 2018-12-07
//IRegex 的屬性與方法 IRegex.GetGroupNames; { 子運算式編號數組, 譬如有兩個子運算式, 會得到 0,1,2; 這基本無用 }IRegex.GetGroupNumbers; { 同上, 只是擷取的是整數數組 }IRegex.GroupNameFromNumber(); { 應該是從子運算式編號擷取子運算式的名稱; 但沒有實現, 來回都是編號 }IRegex.GroupNumberFromName(); { 同上一個是反著的;
Time of Update: 2018-12-07
IGPImage 類提供的 Create 方法:Image := TGPImage.Create(檔案(或流), Boolean);//其中的布爾值預設 False; 如果為 True 則使用檔案(或流)中的已嵌入顏色管理資訊來進行顏色校正.{ 樣本1: 從檔案建立 }var Graphics: IGPGraphics; Image: IGPImage;begin Image := TGPImage.Create('C:\GdiPlusImg\Grapes.jpg');
Time of Update: 2018-12-07
下載 PMark 1.0解壓後只有兩個檔案: PMark_1.exe(主程式)、Dict.dat(詞庫), 運行 PMark_1.exe 即可.程式自動產生的其他輔助檔案都可以隨時刪除.如果音標顯示異常, 是因為缺少音標字型檔, 隨便 下載 ksphonetic.ttf 一個放到 Windows\Fonts\ 下即可.Dict.dat 中的資料(近 14 萬條)主要來自《現代英漢綜合大辭典》, 因為是自動提取的, 難免有錯誤, 可隨時修改.程式使用非常簡單, 主要用到: ↑、↓、→、←
Time of Update: 2018-12-07
PTR: 指定要操作的資料尺寸; Test12_1.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.data val db 11h, 22h, 33h, 44h, 55h, 66h, 7
Time of Update: 2018-12-07
由於 "棧" 是由高到低使用的, 所以新壓入的資料的位置更低.ESP 中的指標將一直指向這個新位置, 所以 ESP 中的地址資料是動態.每次 PUSH, ESP = ESP - x; 每次 POP, ESP = ESP + x;其中的 x 只能是 4 或 2, 因為 Win32 的 PUSH 只可以壓入 32 位(預設)或 16 位的資料.ESP 有個名字叫 "棧頂", 其實它指向的是棧中最低位置的資料.執行個體查看 ESP 的變化:; Test18_1.asm.386.model flat,
Time of Update: 2018-12-07
function HexStrToStr(const S:string):string;//16進位字串轉換成字串var t:Integer; ts:string; M,Code:Integer;begin t:=1; Result:=''; while t<=Length(S) do begin //xlh 2006.10.21 while (t<=Length(S)) and (not (S[t] in
Time of Update: 2018-12-07
目前,利用 Delphi實現串口通訊的常用的方法有 3種:一是利用控制項,如 MSCOMM控制項和 SPCOMM控制項;二是使用 API函數;三是調用其他串口通訊程式。其中利用 API編寫串口通訊程式較為複雜,需要掌握大量的通訊知識。相比較而言,利用 SPCOMM控制項則相對較簡單,並且該控制項具有豐富的與串口通訊密切相關的屬性及事件,提供了對串口的各種操作,而且還支援多線程。下面本文結合執行個體詳細 介紹 SPCOMM控制項的使用。 SPCOMM的安裝 1.選擇下拉式功能表
Time of Update: 2018-12-07
(一) 使用動態建立的方法首先建立 Excel 對象,使用ComObj:var ExcelApp: Variant;ExcelApp := CreateOleObject( 'Excel.Application' );1) 顯示當前視窗:ExcelApp.Visible := True;2) 更改 Excel 標題列:ExcelApp.Caption := '應用程式調用 Microsoft Excel';3) 添加新活頁簿:ExcelApp.WorkBooks.Add;4)
Time of Update: 2018-12-07
首先禁用第三方cookie。firefox22起第三方cookie將預設被禁止,這是對網路隱私保護的一大進步。目前release分支的最新版是firefox19.0.2,預設還是允許的。在選項,隱私,使用自訂記錄設定,接受第三方cookie的勾去掉。順便也可以打上“告訴網站我不想被追蹤”的勾。其次315晚會中提到的flash
Time of Update: 2018-12-07
上一節我們實現了一個”能看不能用“的購物車,現在我們來使用這個購物車。首先是產品目錄介面中的”加入購物車“連結,我們希望點擊這個按鈕後,在購物車中添加該產品(添加的規則是如果購物車中已經有該產品就增加數量,如果沒有就增加條目),然後顯示購物車。首先我們設計一個”RESTful“的加入購物車連結,其形式是: http://localhost:8080/depotapp/cart/add/xxx 其中xxx為產品的ID。 這需要在depotapp/urls.py中增加一條配置:[python]