Time of Update: 2018-12-07
現在的 Delphi(2010、XE) 已經內建了 DirectX 的相關單元(...\source\rtl\win\).//枚舉函數function DirectSoundEnumerate( lpDSEnumCallback: TDSEnumCallback; //回呼函數 lpContext: Pointer //使用者指標): HResult; stdcall; //返回錯誤碼, 成功則返回
Time of Update: 2018-12-07
使用 DirectSound 前應先建立 IDirectSound8 對象(之前的版本是 IDirectSound):function DirectSoundCreate8( pcGuidDevice: PGUID; //裝置的 GUID; 指定 nil 表示使用預設音效卡 out ppDS8: IDirectSound8; //要返回的 IDirectSound8 對象 pUnkOuter: IUnknown //未使用, 應為 nil): HResult;
Time of Update: 2018-12-07
從接觸 C 語言時, 我就不大喜歡宏; 但為了看懂別人的代碼也不得不去瞭解.宏可定義在來源程式的任意位置, 但一般放在 .data 前面.有些簡單的宏可以用 equ、textequ 或 = 來代替, 但宏有更複雜的功能."宏" 的本質是 "替換", 但又像極了 "子過程";所以即有宏過程(macro procedure)、也有宏函數(macro function).它既以有參數(可以是: 常數、變數、寄存器、指令、運算式), 有時也需要像子過程一樣聲明.宏可以指定哪些參數是必須的,
Time of Update: 2018-12-07
IDirectSoundBuffer.GetStatus() 用於擷取緩衝區的目前狀態, 譬如是否現正播放、是否指定為迴圈播放等等.IDirectSound8.DuplicateSoundBuffer() 是通過根據已存在的緩衝區建立緩衝區副本, 這類似引用; 通過它可以讓同一個聲音交叉播放.複製緩衝區不能複製主要緩衝區.樣本:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics,
Time of Update: 2018-12-07
只有使用 IDirectSoundBuffer8 的次緩衝區才能設定"特效", 主要緩衝區主要負責的是混音和處理 3D 效果.IDirectSoundBuffer8(非 IDirectSoundBuffer) 支援以下效果器:IDirectSoundFXChorus8 //合唱; 微調原生與回聲的延遲IDirectSoundFXCompressor8 //壓縮; 壓縮某些振幅IDirectSoundFXDistortion8 //失真;
Time of Update: 2018-12-07
procedure TForm1.Button1Click(Sender: TObject);var c: Currency; i: Int64 absolute c;begin c := 1234.5678; ShowMessage(IntToStr(i)); //12345678end;procedure TForm1.Button2Click(Sender: TObject);var i: Int64; c: Currency absolute i;begin i := 12
Time of Update: 2018-12-07
早就想知道浮點數的儲存原理; 從 Single 開始理解.Single(單精確度浮點數 - 32 位):sef1823如浮點數: 13.625 (1*101 + 3*100 + 6*10-1 + 2*10-2 + 5*10-3)其二進位表示是: 1101.101(1*23 + 1*22 + 0*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3)係數(或叫尾數)正常化: 1101.101 = 1.101101 * 23係數正常化以後, 都可成為 1.xxxxx... 的樣子,
Time of Update: 2018-12-07
<textarea>function getLocation(element) {if(element == null)return null;var offsetTop = element.offsetTop;var offsetLeft = element.offsetLeft;while(element = element.offsetParent) {offsetTop += element.offsetTop;offsetLeft +=
Time of Update: 2018-12-07
首先要修改前面自訂的 ReadWaveFile 單元, 給它增加一個 OpenResource() 方法以直接讀取資源檔中的 "WAVE" 資料;為避免混淆, 把單元名 ReadWaveFile 同時改為 ReadWave; 類名 TReadWaveFile 改為 TReadWave.{修改後的 ReadWave 單元: 從檔案或資源讀取 Wave 的格式、資料與資料尺寸}unit ReadWave;interfaceuses Windows, Classes, SysUtils,
Time of Update: 2018-12-07
問題來源: http://www.cnblogs.com/del/archive/2008/09/05/1284923.html#1818187{查看同一字串的雙位元組碼和 UniCode 碼}procedure TForm1.Button1Click(Sender: TObject);var str1: AnsiString; str2: UnicodeString; {string = UnicodeString} P: PINT;begin { "萬一" 對應的雙位元組碼是:
Time of Update: 2018-12-07
本話題涉及: 1、常用二進位的位操作; 2、集合與 "位" 的關係; 3、TBits 類.這裡的 "位" 是指二進位位, 譬如一個 Byte 有 8 個位、一個 Integer 有 32 個位.在 C 語言中可以定義由 "位" 欄位構成的結構體, 但因效率問題好像使用也不廣泛.假如要儲存八種狀態(True/False), 最笨的辦法可以使用下面的結構體:type TState = record b1, b2, b3, b4, b5, b6, b7, b8: Boolean;
Time of Update: 2018-12-07
問題來源: http://www.cnblogs.com/del/archive/2009/10/28/1591380.html#2006425測試準備, 在空白表單上添加 Memo1 和 Button1, 然後啟用 Form1 的如下事件(巔楓同學關心的):OnMouseEnter、OnMouseLeave、OnMouseWheel、OnMouseWheelDown、OnMouseWheelUp, 還用到其 OnCreate 事件.然後根據如下測試代碼, 一試便知:unit
Time of Update: 2018-12-07
文字地址:http://taligarsiel.com/Projects/howbrowserswork1.htm參考地址:http://blog.csdn.net/zzzaquarius/article/details/6532299瀏覽器是怎麼工作的。介紹:瀏覽器可以說是現在最被廣泛使用的軟體。在這篇文章中,我將要解釋它們是怎樣在幕後操作的。我們將會看到,當你往地址欄中敲入'google.com'到頁面在瀏覽器中出現的中間那段過程到底發生了什麼。我們將討論的瀏覽器目前我們主要使用的瀏覽器有五
Time of Update: 2018-12-07
0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101
Time of Update: 2018-12-07
html推出了webSocket。因為畢業設計要用到聊天室的功能,所以就研究了下webSocket的應用。在用戶端使用websocket需要建立WebSocket對象,通過提供的open、send、message、close等方法實現建立、發送、監聽資訊、關閉串連。例如下面的代碼:if('WebSocket' in window){// 建立websocket執行個體var socket = new
Time of Update: 2018-12-07
var hasTouch = 'ontouchstart' in window;var scroll_EV = hasTouch ? 'touchmove' : 'scroll';Array.prototype.del = function(n) {if (n < 0) return this;else return this.slice(0, n).concat(this.slice(n + 1, this.length));}function lazyLoading()
Time of Update: 2018-12-07
今天看到了document.compatMode屬性,平時對文檔模式不是很瞭解,於是test了這個屬性。document.compatMode的值有兩種,分別為"BackCompat"和"Css1Compat".BackCompat 代表標準相容模式關閉Css1Compat 代表標準相容模式開啟所謂的標準相容模式未開啟即“混雜模式”(又叫怪異模式,Quirks mode)。標準相容模式已開啟即“標準模式”(又叫strict 模式,Standards mode 或者 Strict mode)。
Time of Update: 2018-12-07
1.聚焦高亮 屏蔽聚焦高亮方法 屏蔽input聚焦高亮效果的樣式:input {outline: none;}textarea {outline: none;} 2.textarea的自動縮放 屏蔽自動縮放 /*css2.0*/textarea {width: 400px;max-width: 400px;height: 400px;max-height: 400px;}/*css3.0*/texearea {resize: none;}
Time of Update: 2018-12-07
標準的web前端工程師需要知道 ◎瀏覽器(或者相應播放器)的渲染/重繪原理這我得加把勁了。我還真的說的不是很清楚,我就G下,結果不是很多,找到了有一個,就記下來了。。。以下部分來自handawei-javaeye的blog:Web頁面運行在各種各樣的瀏覽器當中,瀏覽器載入、渲染頁面的速度直接影響著使用者體驗簡單地說,頁面渲染就是瀏覽器將html代碼根據CSS定義的規則顯示在瀏覽器視窗中的這個過程。先來大致瞭解一下瀏覽器都是怎麼幹活的:1. 使用者輸入網址(假設是個html頁面,並且是第一次訪問)
Time of Update: 2018-12-07
前一段時間用css3實現了圖片的滑動。使用了css3的transform屬性。但是IE瀏覽器不支援這個屬性,最近需要做的圖片滑動要相容瀏覽器,所以為了相容瀏覽器,使用了jquery來實現。具體代碼:js:var Class = { create: function() { return function() { //返回一個function對象 this.initialize.apply(this, arguments);