Time of Update: 2018-12-06
★ 關於firebird的最簡安裝程式製作(innosetup安裝程式)http://www.firebird.net.cn/forum_view.asp?forum_id=2&view_id=335★ FireBird.conf設定檔常用參數 http://www.firebird.net.cn/forum_view.asp?forum_id=2&view_id=61★ FireBird.conf設定檔常用參數二http://www.firebird.net.cn/forum_
Time of Update: 2018-12-06
Delphi中靜態方法重載還是覆蓋的討論新人學習Delphi的時候,容易搞不懂的一個問題,當子類方法和基類方法同名,並且參數也一樣的時候,叫做什麼呢?是覆蓋,還是重載呢? 答案是隱藏父類方法。 一般我們的理解重載是同名,不同參數的同一個類裡面實現,或者父類和子類方法同名,參數不同,子類必須有overide關鍵字,表示重載方法。 也就是說重載必須有overload修飾; 覆蓋呢?覆蓋必須有override修改; 否則同名,同參數就是隱藏方法。============================
Time of Update: 2018-12-06
需要個類似資源管理員的東西, 首先試了下 TDriveComboBox、TDirectoryListBox、TFileListBox, 嘿! Win31 時代的東西, 不是一般地醜.試了下 Vcl.Shell.ShellCtrls 下的 TShellComboBox、TShellTreeView、TShellListView, 非常滿意! 並且 TShellComboBox 也可以免掉了.unit Unit1;interfaceuses Winapi.Windows,
Time of Update: 2018-12-06
轉自:http://www.cnblogs.com/Bung/archive/2011/05/17/2048867.html//延遲函數:方法一procedure delay(msecs:integer);varTick: DWord; Event: THandle; beginEvent := CreateEvent(nil, False, False, nil); tryTick := GetTickCount + DWord(msecs); while (msecs > 0)
Time of Update: 2018-12-06
Delphi的TScrollBox本身並不響應滑鼠滾輪事件(不知道為什麼),但可以在ScrollBox的滑鼠滾動事件中進行控制:procedure TfrmTaskNoteEdit.ScrollBox1MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);begin if WheelDelta < 0
Time of Update: 2018-12-06
寫了一個服務型的DCOM程式,運行後發現用戶端串連時不能啟動服務程式,
Time of Update: 2018-12-06
手頭的程式需要修改註冊表, 以讓當前程式成為某格式的預設開啟程式並關聯表徵圖; Vista 之後需要管理員權限才能操作註冊表, 很麻煩, 所以有了下面的嘗試.unit Unit1;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
Time of Update: 2018-12-06
Delphi中MIDAS到底是什麼呢?和他相關組件是什麼呢? MIDAS(Multitiered Distributed Application Services)多層分布式應用服務. Delphi所提出的Multi-Tier結構是把原來的Two-Tier前台應用程式內的dbExpress,ADO,BDE,SQL
Time of Update: 2018-12-06
(原創 -- 作者:陸島工作室 E-mail: xotec@126.com)以前也曾經為 Delphi 中相對路徑與絕對路徑之間的轉換煩惱過。但時,用得少,也沒過多地去注意了。今天要寫一個小程式,又遇到了這個問題。就找資料吧,終於找到了最簡單,最直接的方式。現在把函數整理如下:需要引用
Time of Update: 2018-12-06
查尋方式缺點優點Locate會從資料來源中下載所有的資料,如果資料表中包含大量的資料,那麼執行效率會很緩慢,而且容易造成用戶端的當機查尋資料的執行效率保持穩定的結果,而不管要查尋的資料是否已經存在於結果資料集中,而且沒有其他的副作用使用CloneCursor如果欲查尋的資料不在結果資料集中,那麼仍然會下載資料表中所有的資料,而且表現的比直接使用Locate等方法還緩慢如果欲查尋的資料已經存在於結果資料集中,那麼它可以避免下載所有的資料,並且能夠快速地找到查尋的資料使用CloneCursor加SQ
Time of Update: 2018-12-06
一、分頁寫法小例:select first 10 templateid,code,name from template ;select first 10 skip 10 templateid,code,name from template ;select * from shop rows 1 to 10; --firebird2.0支援這種寫法二、show show tables; show table tablename;三、D:\firebird2\bin>isql -u
Time of Update: 2018-12-06
TField對象的SetText和GetText事件處理函數使用TField對象的SetText和GetText事件處理函數可方便的解決欄位的代碼與代碼所對應值的顯示問題TSimpleDataset/TClientDataset對象的Aggregation使用TDataset對象的Aggregate屬性可以來計算用戶端資料集中資料的總計數值、平均值或是計算最大值和最小值。使用TBookMark來標記記錄書籤, 訪問資料集中的資料通過使用TBookMark以及TDataset對象的
Time of Update: 2018-12-06
動態方法和虛擬方法在delphi裡面分別表示:動態方法 當需要調用父類、祖先類的被覆蓋方法的時候,是尋找繼承樹,當找到,就調用。減少了VMT佔用,但調用慢一些。虛擬方法 和動態方法不同的是,記錄了被覆蓋的方法的指標。 lazarus的處理方式是統一成虛擬方法了。也就是說,lazarus裡面不存在真正的動態方法。以空間換時間,加快了程式執行速度。
Time of Update: 2018-12-06
加*號為FB2.0加入的函數 整理:劍雷(jianlei) 2006-10-13 1. COUNT, AVG, MAX, MIN, SUM 說明:通用統計函數,不詳細介紹了 2. EXTRACT(timestamp_part FROM value) 說明:EXTRACT(YEAR/MONTHE/DAY/WEEKDAY FROM 欄位名) 從日期型欄位中分離出年,月,日及一個星期的第幾天 3. CAST(value AS datatype) 說明:轉換資料類型 4. LOWER(
Time of Update: 2018-12-06
DCC32 參數說明它的編譯器參數如下: 選項 描述 Aunit=alias 設定單元別名 B 編譯所有單元 CC 編譯控制台程式 CG 編譯圖形介面程式 Ddefines 編譯條件符號定義 Epath 可執行檔輸出路徑 Foffset 尋找運行期間錯誤 GD 產生完整.Map檔案 GP 產生.Map檔案Public段 GS 產生.Map檔案Segment段 H 輸出提示資訊 Ipaths 檔案包含路徑 J
Time of Update: 2018-12-06
給NT服務型程式加描述的方法,在網上找了找,好像只有通過用註冊表的方法比較方便與實用。自己整理了一下,帖出來共用。自己測試了一下,OK!procedure ServiceUpdateDescription(const ServiceName, Description: string);varreg: TRegistry;beginreg := TRegistry.Create;try with reg do begin RootKey := HKEY_LOCAL_MACHINE;
Time of Update: 2018-12-06
作者: 陸島工作室Windows API 的 keybd_event 函數,它可以產生鍵盤訊息。實現向其他視窗類比真實的按鍵動作。例如: {按下A鍵} Edit1.SetFocus; keybd_event(VK_SHIFT, 0, 0, 0); keybd_event(ord('A'), 0, 0, 0); keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0); {按下左Window鍵然後選擇“運行”} keybd_event(
Time of Update: 2018-12-06
作者: 陸島工作室Variant 轉換成 Stream 的函數procedure VariantToStream (const v :olevariant; Stream : TMemoryStream); var p : pointer; begin Stream.Position := 0; Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound(v, 1) + 1; p := VarArrayLock (v);
Time of Update: 2018-12-06
介紹幾個控制應用程式的代碼函數。安裝COM程式、卸載COM+應用程式、啟動/關閉COM+服務等。uses
Time of Update: 2018-12-06
作者: 陸島工作室有時候我們需要通過程式來關閉一個進程或服務。但是關閉服務需要有一定的許可權。以下函數就介紹了如何暴力關閉一個服務程式。根據進程名稱來殺死進程是用以下函數uses Tlhelp32;function KillTask(ExeFileName: string): Integer;const PROCESS_TERMINATE = $0001;var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: