Time of Update: 2018-12-07
windows.WaitForSingleObject(FEventHandle, 180000);...... FEventHandle := Windows.CreateEvent(nil, false, False, PChar(@FEventName));...... if FEventHandle <> THandle(nil) then Windows.CloseHandle(FEventHandle);......if FEventHandle <>
Time of Update: 2018-12-07
unit untFixForm;interfaceusesClasses, SysUtils, Controls, Forms;typeTFontedControl = class(TControl)public property Font;end;TFontMapping = record SWidth : Integer; SHeight: Integer; FName: string; FSize: Integer;end;procedure FixForm(
Time of Update: 2018-12-07
格式:運算元 Shl/Shr 移動位元說明:運算元與傳回值都是整數例子:16(10) = 10000(2) 16(10) Shr 1 = 10000(2) Shr 1 = 1000(2) = 8(10) 16(10) Shr 2 = 10000(2) Shr 2 = 100(2) = 4(10)說明:一個整數(I)按位左移一位,相當於把它乘以2,即 I * 2 一個整數(I)按位右移一位,相當於把它除以2,即 I Div 2 一個整數(I)按位左移2
Time of Update: 2018-12-07
FillMemory、ZeroMemory 一目瞭然的兩個函數, 但其實它們都是調用了 FillChar;清空不過就是填充Null 字元(#0: 編號為 0 的字元), 說來說去是一回事.為了下面的測試, 先寫一個以十六進位方式查看記憶體的函數: function GetMemBytes(var X; size: Integer): string;var pb: PByte; i: Integer;begin pb := PByte(X); for i := 0 to size - 1
Time of Update: 2018-12-07
使用結構或結構數組, 一般是不需要主動分配記憶體的, 譬如: var pts: TPoint;begin pts.X := 1; pts.Y := 2; ShowMessageFmt('%d,%d', [pts.X, pts.Y]); {1,2}end;//結構數組:var Arr: array[0..2] of TPoint; i: Integer;begin for i := 0 to Length(Arr) - 1 do begin Arr[i].X := i;
Time of Update: 2018-12-07
靜態數組, 在聲明時就分配好記憶體了, 譬如: var arr1: array[0..255] of Char; arr2: array[0..255] of Integer;begin ShowMessageFmt('數組大小分別是: %d、%d', [SizeOf(arr1), SizeOf(arr2)]); {數組大小分別是: 512、1024}end;對靜態數組指標, 雖然在聲明之處並沒有分配記憶體, 但這個指標應該分配多少記憶體是有定數的.這種情況, 我們應該用 New 和
Time of Update: 2018-12-07
var i , x : Integer ; y :array[0..17] of byte ;begin y[0] := $fe ; y[1] := $fe ; y[2] := $fe ; y[3] := $fe ; y[4] := $68 ; y[5] := $99 ; y[6] := $99 ; y[7] := $99 ; y[8] := $99 ; y[9] := $99 ; y[10] := $99 ; y[11] := $68 ;
Time of Update: 2018-12-07
MIS系統許可權控制的一個簡便方法MIS系統許可權控制的一個簡便方法收藏 新一篇: 創MIS系統的許可權又多又複雜,很多人是在使用者資料表中設定多個欄位,每個欄位代表一個許可權,或者設定一個字串,不同的字元組合表示使用者的不同許可權。簡單一點的,可以預先設定幾個角色,根據角色來行使預設許可權,但又不夠靈活。現介紹一個簡單靈活的許可權分配控制的方法,並無高深見解,只是很多人忽略了它。如果您正在設計許可權控制模式,不妨接著往下看。此方法非常簡潔,擴充性很好。僅用一個 integer
Time of Update: 2018-12-07
多層開發注重效率的注意點 1.不同資料型態的傳遞負荷成本注意不要任意的使用 Variant,因為 Variant 雖然好用,但是相對上它使用的成本也非常的高。例如如果你使用 Variant 來代表整數的話,那麼整數本身只佔4 個位元組,但是使用 Variant 來代表它則需要 20 個位元組。當這樣的 Variant在網路上傳遞時是比直接傳遞整數來得緩慢。 2.減少網路的
Time of Update: 2018-12-07
TIdAntiFreeze工作原理:在內部定時停止堆棧調用、然後調用Application.ProcessMessages。Indy支援線程pooling。可以用TIdThreadMgrPool組件利用線程pooling數以百計的線程對於一個忙碌的伺服器,可能需要數以百計、千計的線程。人們普遍誤解 如此多的線程將立刻使系統當掉。其實不然。 對於多數伺服器而言,線程存在期的多數時間用於等待資料。在等待
Time of Update: 2018-12-07
在Delphi中有一個THashedStringlist類,使用這個類可以實現Hash表的操作.使用這個類需要引用IniFiles標頭檔.Hash表正是為了提高檢索速度而設計出來的. 例如:我們定義的資料結構是:以下是引用片段: RTest = record Key:Integer; Name:String[20]; Sex:Boolean; Age:Integer; end; PTest = ^RTest ; 1:建立Hash表.
Time of Update: 2018-12-07
以下代碼在D7+ACCESS+FastReport 3.15版中測試通過.1.將FastReport存入數據庫中:在窗體的"Insert"按鈕的OnClick事件中插入下面代碼:(Insert_rep: TADOQuery.設置SQL語句:select * from reportdata.注:ReportData為放置數據庫的表,其中有欄位ID(標志),REPORT(報表內容))procedure TForm1.Button4Click(Sender:
Time of Update: 2018-12-07
client.ini[screen]x=1024y=768map.mdbmap_id map_chk_station map_x_min map_x_max map_y_min map_y_max1 1號監測站 574 613 283 3212 2號監測站 517 563 127 1623 4號監測站 854 899 34 74procedure TFormMain.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Time of Update: 2018-12-07
1、建立工程,在表單中加入IdSMTP1、IdMessage1和IdPOP31(Indy控制項標籤組)控制項各一個。 2、設定 IdSMTP1.Host := 'SMTP.163.com';(我用的是163檢試,具體也可選擇其它伺服器) IdSMTP1.Username := 'caoyan528';(此處即表示郵箱的帳號名,例如郵箱為:aaaaaa@163.com,則Username即為aaaaaa) IdSMTP1.Password := 'XXXXXXXX';
Time of Update: 2018-12-07
FillMemory、ZeroMemory 一目瞭然的兩個函數, 但其實它們都是調用了 FillChar;清空不過就是填充Null 字元(#0: 編號為 0 的字元), 說來說去是一回事.為了下面的測試, 先寫一個以十六進位方式查看記憶體的函數:-------------------------------------------------------------------------------- function GetMemBytes(var X; size: Integer):
Time of Update: 2018-12-07
Delphi對網路攝影機的控制很簡單,在System,windows和messages三個單元內已定義了所有的底層訊息函數,我們只需要合理的調用它們就行了。我把網路攝影機的有關操作做成一個控制項,這樣就可以拖動表單上直接使用了。{************************************ * Camera Control for Delphi7 * * Made by Rarnu * * Credit 2006.08.
Time of Update: 2018-12-07
地圖圖層想象圖層是透明的,而每一層都包含了地圖的不同部分。這些圖層是一層層疊加,這樣您就可以看到整個地圖資訊。多個圖層集合組成電腦地圖設想這些圖層是透明的,每一圖層包含地圖的一個不同的部分。這些圖層疊加在一起,使您同時可以看到地圖的所有方面。例如,第一個圖層包含國家邊界,第二個圖層有代表首都的符號,第三個圖層包含高速公路。將這些透明的圖層疊加在一起就組織起一個完整的地圖。地圖圖元有四個基本的圖元樣式:地區對象:覆蓋給出地區的封閉對象。包括多邊形、橢圓形以及矩形。例如,國家的邊界、郵遞區號劃分區的
Time of Update: 2018-12-07
unit uFTPclient;interfaceuses SysUtils,Windows,Tlhelp32;const FILE_CREATE_TIME=0; //檔案建立時間 FILE_MODIFY_TIME=1; //修改時間 FILE_ACCESS_TIME=2; //最後訪問時間type TFileTimes = (ftLastAccess, ftLastWrite, ftCreation);//檔案是否正被使用function
Time of Update: 2018-12-07
StrAlloc 雖然最終也是調用了 GetMem, 但 StrAlloc 會在指標前面添加 Delphi 需要的 4 個管理位元組(記錄長度).StrAlloc 分配的記憶體, 用 StrDispose 釋放, 用 StrBufSize 擷取大小.用 FreeMem 釋放可以嗎? 這樣會少釋放 4 個位元組.這種類型的指標一般用於 API 函數的參數, 譬如擷取視窗標題:-------------------------------------------------------------
Time of Update: 2018-12-07
現在影響世界最重要的技術就要算是I n t e r n e t / I n t r a n e t了,I n t e r n e t / I n t r a n e t不但改變了許多人的生活,也影響了世界運轉的方式。各種商機和軟/硬體的發展也由I n t e r n e t / I n t r a n e t主導。I n t e r n e t / I n t r a n e t的出現也為軟體的開發方式帶來了多元的形式,軟體人員開始使用各種工具來開發I n t e r n e t / I n