原创 Delphi 環境下使用DirectDraw實現簡單的繪製

注:demo來源於《windows遊戲編程大師技巧》demo6-3,本文章用Delphi實現該demo。 首先,使用Windows API函數實現原生態窗體,然後調用DDraw類實現效果。 部分註釋用英文寫在代碼裏(爲了能無障礙看

原创 Delphi調用C++的對象

在Delphi調用由C++導出的類的對象 原理 調用方式是C++中使用純虛函數,在Delphi中也就是純虛類,他們有着相同的佈局的虛方法表。每個Delphi的類都有一張VMT表,VMT中包含了一些基礎信息、一些獲得運行時信息的方法

原创 delphi strict final用途

整理一下delphi2007後一些不常用的語法 關鍵字:strict private域下成員變量或方法加了此修飾符,該類的子類將無法訪問private域下的變量和方法。 TAbstractClass = class abstr

原创 c++實現大根堆

1.定義 在一棵樹中,每個節點都大於(小於)它的左右孩子,這棵樹叫做大根樹(小根數)。一個大根堆就是一棵大根樹,也是一棵完全二叉樹。 如圖所示大根樹,這個樹每個節點都大於它的子節點(除葉子節點以外)。 2.存儲方式 採用一維數組

原创 c++實現跳躍表

直接上代碼,拷貝過去就能運行 註釋寫在對應的代碼裏、 節點的定義 #ifndef _SKIP_NODE_H #define _SKIP_NODE_H #include <iostream> struct skipNode {

原创 Delphi datetime運算和filedate的轉換

在服務器中經常會用到時間的計算,如記錄當前時間,存儲當前時間戳,計算兩個時間的差值。 TDateTime datetime在內存中使用比較多,它是一個double類型,可以很精細的記錄時間。 .. var tvNow: TDat

原创 C++矩陣的基本運算方法

繼續學習數據結構。 矩陣的基本操作 使用動態數組存儲數據。 // matrix.cpp : Defines the entry point for the console application. // #include "st

原创 C++雙向鏈表

雙向鏈表 工作中使用比較多,插入節點方式一般使用尾插入以達到節點的順序性,在指定位置插入節點使用較少。 遍歷的時候,我是採用二分法,靠近頭節點的,從頭節點開始遍歷,靠近尾節點的,從尾節點開始遍歷,效率小於O(n)。 我是基於上個單鏈表

原创 C++單向鏈表

C++單鏈表 一般很少使用單鏈表。在實際中,使用雙向鏈表居多,並定義一個頭尾指針變量,恆定指向頭尾節點,方便遍歷。 1.只有頭節點的情況 完整代碼如下: // singlyLinkList.cpp : Defines the entr

原创 C++使用數組的線性表

使用數組實現的線性表 本科讀書的時候學過數據結構這門課程,但是多年不用C++,想重新撿起來,建個分類用於做筆記,算是鞏固一下。 用途: 數組實現的線性表在工作中幾乎不使用,絕大多數時候都採用鏈表和散列表較多。 如:客戶端通知服務器的消

原创 delphi Class helper for class語法

作用 對現有的類進行擴展,如果把類理解爲一個容器,那麼這條語法的作用是對現有的類的容器的成員進行擴展或者修改。 有點像lua中的類,可以取到類的table,對table修改。 語法 TMyClass = class public p

原创 lua閉包中的尾調用

網上大部分關於閉包的例子如下: function test() local i=0 return function()//尾調用 i = i + 1 re

原创 Delphi實現AOI算法

Delphi實現AOI算法 採用雙向鏈表 例子取自於下面的博客,我對Delphi比較熟悉,所以改成了delphi版。 https://www.cnblogs.com/rond/p/6114919.html 下面是代碼,有很多地方需要優

原创 Delphi使用PShortString指針

今天學習的時候,看到RTTI結構裏用了蠻多PShortString指針,由於ShortString比較特殊,所以操作PShortString的簡單demo鞏固一下 值得注意的是: 1.平常項目中一般不會使用PShortString,一

原创 Delphi的RTTI&VMT

網上已經有很多關於RTTI的博客,最近剛好看到這裏,以前沒弄懂的東西,這次一起搞明白一下,寫個博客,算是做個筆記。 這裏有一篇英文文檔,說的很詳細: Delphi Q&A 概念 每個Delphi的類都有一張虛擬方法表(virtual-