delphi 关闭线程函数

function FindProcessId(ExeFileName: string):THandle;//查找线程

var

  ContinueLoop:BOOL;

  FSnapshotHandle:THandle;

  FProcessEntry32:TProcessEntry32;

begin

  result:=0;

  FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

  FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);

  ContinueLoop:=Process32First

….

堆和栈的区别 通谷化的理解

明生注:这一份资料确实很容易理解。。所以赶紧收藏起来,虽然不是delphi的。。

堆和栈的区别(转贴,作者为一c++程序员,具体姓名不清楚)

一、预备知识—程序的内存分配

一个由c/C++编译的程序占用的内存分为以下几个部分

1、栈区(stack)—> 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

2、堆区(heap)—> 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。

3、全局区(静态区)(static)—>全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束后由系统释放

4、文字常量区—>常量字符串就是放在这里的。程序结束后由系统释放

5、程序代码区—>存放函数体的二进制代码。

二、例子程序

….

Application.MessageBox 使用心得

Application.MessageBox 是 TApplication 的成员函数,宣告如下:

function TApplication.MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;

自变量:

  1. Text:要显示的讯息

  2. Caption:讯息窗口的标题列文字

  3. Flags:讯息旗标

     3.1. 可指定讯息窗口上的图标

     3.2. 可指定讯息窗口出现的按钮

TWebBrowser 与 MSHTML(5): document 对象的属性、方法、事件纵览

{IHTMLDocument2 方法:}

write                 //写入

writeln               //写入并换行

open                  //打开一个流,以收集 document.write 或 document.writeln 的输出

close                 //关闭并输出用 document.open 方法打开的流

clear                 //清空文档中所有元素, 可能暂时不支持

queryCommandSupported //是否支持指定命令

queryCommandEnabled   //指定命令是否有效

queryCommandState     //是否设置了指定命令

queryCommandIndeterm  //指定命令是否处于不确定状态

queryCommandText      //命令

queryCommandValue     //命令值

execCommand           //执行命令

execCommandShowHelp   //命令帮助信息

TWebBrowser 与 MSHTML(4): location、history、screen、navigator 对象的属性与方法纵览

{location 对象:}

reload   //重新加载当前文档

replace  //用新的文档替换当前文档

assign   //加载新文档

href     //设置或返回完整的 URL

protocol //设置或返回当前 URL 的协议

host     //设置或返回 # 号开始的 URL(锚)

hostname //设置或返回当前 URL 的主机名

port     //设置或返回当前 URL 的端口号

pathname //设置或返回当前 URL 的路径部分

search   //设置或返回从 ? 号开始的 URL 的部分

hash     //设置或返回主机名和当前 URL 的端口号

{history 对象:}

back    //加载 history 列表中的前一个 URL

forward //加载 history 列表中的下一个 URL

go      //

TWebBrowser 与 MSHTML(3): window 对象的属性、方法、事件纵览

这还不是 TWebBrowser 控件的属性、方法、事件; 这和浏览器中 JavaScript 的 window 对象是基本一致的.

window 对象是网页脚本中的顶层对象, 它代表网页的窗口、或一个框架.

——————————————————————————–

{IHTMLWindow2 属性:}

frames             //返回窗口中的框架数组

location           //返回窗口的 location 对象

history            //返回窗口的 history 对象

navigator          //返回窗口的 navigator 对象

document           //返回窗口的 document 对象

screen             //返回 Screen 对象

self               //返回当前窗口

window             //同 self 属性

top                //返回最顶层的窗口

….

TWebBrowser 与 MSHTML(2): 获取 window 对象的时机

这是在页面下载完毕后即刻获取:

——————————————————————————–

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, OleCtrls, SHDocVw, StdCtrls;

type

  TForm1 = class(TForm)

    WebBrowser1: TWebBrowser;

    Button1: TButton;

    Button2: TButton;

    procedure FormCreate(Sender

…..

TWebBrowser 与 MSHTML(1): 从 TWebBrowser 获取 DOM 中的 window 对象

借助 TWebBrowser 可以把软件做的更漂亮、更灵活, 很多软件已经或者早就这样做了.

尽管 HTML DOM 内容繁杂(涉及到 HTML、JavaScript、CSS), 但也都属于 TWebBrowser 的功能范围.

使用 TWebBrowser 时, 如果配合上 MSHTML, 将会有很好的代码提示; 不然也可以, 就是写代码困难.

HTML DOM 中的一切都是源于一个叫 window 对象, 为了和 JS 中的 DOM 一致起来, 本次先获取这个对象.

TWebBrowser 是调用 SHDocVw.dll 的功能并继承与 TOleControl 类, 会用到 SHDocVw 和 OleCtrls 单元.

另外 window 是 IHTMLWindow2 接口类型的, 此接口定义在 MSHTML 单元.

 示例图:

….