多線程編程(18) – 再從一個小例子出發

前面的例子都是讓若干線程做同樣的事情, 下面這個例子中的三個線程將分別在三個畫板上隨機畫不同顏色的橢圓.接下來的很多事情我想要基於這個例子來做.本例:代碼檔案:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm1 = class(TForm) PaintBox1

Delphi 的記憶體操作函數(6): 跨進程的記憶體配置

Delphi 為我們提供了三個方便的函數:GlobalAllocPtr {簡化自 API 的 GlobalAlloc}GlobalReAllocPtr {簡化自 API 的 GlobalReAlloc}GlobalFreePtr {簡化自 API 的 GlobalFree}讀寫本程式以外的資料時可以使用它們, 很方便, 譬如:p := GlobalAllocPtr(0, Len); {分配}p := GlobalReAllocPtr(p, Len, 0);

關於位元影像的像素格式

1、判斷位元影像的像素格式:var bit: TBitmap; pix: TPixelFormat; s: string;begin bit := TBitmap.Create; bit.LoadFromFile('c:\temp\test.bmp'); //位元影像路徑 pix := bit.PixelFormat; s := ''; case pix of pfDevice: s := 'Device'; {裝置支援的像素格式} pf1bit: s := '1

多線程編程(19) – 不使用同步工具, 手動協調線程依次執行

在前面例子的基礎上, 探討新問題.假如我們想讓幾個線程(例子中是 3 個)依次執行, 我們可以使用臨界區、訊號、互斥等手段;但下面第一個例子什麼同步工具都沒用, 也達到了目的; 方法是: 讓前一個線程在結束前順便啟動下一個線程.第二個例子使用了互斥對象配合 WaitForSingleObject 函數, 也達到相似的目的.(兩個例子的差不多, 但第二個例子的執行順序不好保證):第一個例子的代碼檔案:unit Unit1;interfaceuses Windows, Messages,

做了一個瀏覽指定檔案格式的 TreeView

unit DirTreeView;interfaceuses SysUtils, Classes, Controls, Forms, ComCtrls;type TDirTreeView = class(TTreeView) private FRootPath: string; FExt: string; FFileName: string; protected procedure Collapse(Node: TTreeNode); override;

如何把一個文本列表添加到 TListBox 並避免重複項 – 回複 “xnlxw” 的問題

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) ListBox1: TListBox; procedure FormCreate(Sender: TObject); end;var Form1:

理解 Delphi 的類(一) – 從結構談起

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end;var Form1:

學習 TList 類的實現[1]

最近整理了一些函數列表, 算是一個宏觀的安排; 等以後再碰到一些函數時就可以放置的更有次序一些.我對函數與類的理解是:函數是一個功能模組, 類是一個更強大的功能模組; Delphi 已經提供了很多的函數與類, 但很多時候我們卻視而不見, 重新"刀耕火種".曾記得網上有一個 Delphi 行家連續幾年開發與升級一個"萬用字元"相關的函數, 終於有一天他說: 原來 Delphi 有這個函數.也見過有人大罵 Delphi 連雜湊表都沒有, 其實只有他不知道而已.我自己也傻呵呵地實現過

Delphi 與 DirectX 之 DelphiX(1): 安裝測試

測試 Demo 下載: http://files.cnblogs.com/del/DelphiX_1.rar (在 Delphi 2007 和 2009 下均編譯通過)其實按照 這裡 的介紹, 比下載來的快, 也不需要下載.DirectX, 微軟很久的技術了; 從 Windows Vista 開始, DirectX 已經是微軟作業系統的介面基礎了.在 Delphi 下使用 DirectX 比較流行的有下面四種方式:DelphiXDSPackAsphyre (?)Delphi

使用剪下板[1]: AsText、SetTextBuf、GetTextBuf

剪下板類 TClipboard 定義在 Clipbrd 單元, 使用前先要 uses Clipbrd;uses Clipbrd;procedure TForm1.Button1Click(Sender: TObject);var clip: TClipboard;begin clip := TClipboard.Create; {建立} clip.AsText := Self.Text; {把表單標題放入剪下板} ShowMessage(clip.AsText); {從剪下板讀取,

擷取指定地址的 JPG 圖片 – 回複 “bangrj” 的問題

問題來源: http://www.cnblogs.com/del/archive/2009/02/27/1370907.html#1463071本例:代碼檔案:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,

WinAPI: SetWindowsHookEx – 設定鉤子

提示: 如果要設定系統級鉤子, 鉤子函數必須在 DLL 中.SetWindowsHookEx( idHook: Integer; {鉤子類型} lpfn: TFNHookProc; {函數指標} hmod: HINST; {包含鉤子函數的模組(EXE、DLL)控制代碼; 一般是 HInstance; 如果是當前線程這裡可以是 0} dwThreadId: DWORD {關聯的線程; 可用 GetCurrentThreadId 擷取當前線程; 0 表示是系統級鉤子}):

使用 TListView 控制項(1)

第一次使用 ListView 是最近兩三天的事: http://www.cnblogs.com/del/archive/2008/12/31/1365745.html當時我就想: 一定要理順它, 這是個常用且複雜的控制項!本例:代碼檔案:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,

類比一個帶背景的 TPanel

程式中用 TPanel 做了容器, 需要給它一個背景圖片; 發現這竟是個難題!發現我經常使用的滾動箱控制項 TScrollBox, 是一個很好的替代品.本例需要先添加兩個圖片資源, 添加方法可以參考: http://www.cnblogs.com/del/archive/2008/08/23/1274591.html本例:代碼檔案:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics,

Delphi 的字元及字串[1] – string、AnsiString、WideString、String[n]、ShortString

//最常用的 stringvar str: string; {定義}begin str := '萬一'; {賦值} ShowMessage(IntToStr(Length(str))); {長度是: 4}end;//長字串 AnsiString; 在目前的版本(2007)中的預設狀態下, String 就是 AnsiStringvar str: AnsiString;begin str := '萬一'; ShowMessage(IntToStr(Length(str)));

使用 TRegistry 類[1]: 顯示各主鍵下的項

{XP 註冊表中的主鍵}HKEY_CLASSES_ROOT {檔案類型資訊} HKEY_CURRENT_USER {目前使用者資訊}HKEY_LOCAL_MACHINE {軟硬體資訊} HKEY_USERS {所有使用者資訊} HKEY_CURRENT_CONFIG {當前配置資訊}{Delphi 定義的常量}HKEY_CLASSES_ROOT = DWORD($80000000);HKEY_CURRENT_USER = DWORD($800

WinAPI: CallNextHookEx – 調用下一個鉤子

CallNextHookEx( hhk: HHOOK; {當前鉤子的控制代碼} nCode: Integer; {鉤子代碼; 就是給下一個鉤子要交待的} wParam: WPARAM; {要傳遞的參數; 由鉤子類型決定是什麼參數} lParam: LPARAM {要傳遞的參數; 由鉤子類型決定是什麼參數}): LRESULT; {會返回下一個鉤子執行後的傳回值; 0 表示失敗}//參數 nCode 的可選值:HC_ACTION = 0; {}HC_

Delphi 的編譯指令(1): $DEFINE、$UNDEF、$IFDEF、$ELSE、$ENDIF

一個程式從無到有的過程是這樣的: 編輯代碼 -> 預先處理 -> 編譯(成dcu等) -> 連結(為exe等).什麼是預先處理? 譬如 VCL 中有很多代碼是相容 Linux 的, 在 Windows 下就需要在編譯之前預先處理掉那些 for Linux 的代碼.1、判斷作業系統:其中的 "MSWINDOWS" 和 "LINUX" 就是 Delphi 預定義的 "條件標識符".begin {$IFDEF MSWINDOWS} ShowMessage('Windows')

TMainMenu 類[一]

自動建立一個 SDI Application 程式, 程式包含了漂亮的菜單:在表單檔案內記錄著菜單資料:object MainMenu1: TMainMenu Images = ImageList1 Left = 8 Top = 152 object File1: TMenuItem Caption = '&File' Hint = 'File related commands' object FileNewItem: TMenuItem

Delphi 的運算子多載(1)

其實 Delphi 2006 就已經支援運算子多載了, 不過 for Win32 的版本只是在 record 裡支援.運算子多載有什麼用處呢? 舉個例子:譬如 "張三"、"李四" 兩人一起來拜見你, 你可能會問: "你們兩個誰大?"其實你是在問: "你們兩個誰的年齡大?"; 但生活中人們一般都不這麼羅嗦.在程式中能否這樣簡化呢? 這隻能通過 "運算子多載" 做到!先按 "你們兩個誰的年齡大?" 寫出原始例子吧:unit Unit1;interfaceuses Windows,

總頁數: 61357 1 .... 4761 4762 4763 4764 4765 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.