易截截图软件、单文件、免安装、纯绿色、仅160KB

delphi 读取剪粘板内的html格式数据

根据剪贴板的原理,在获取剪贴板内容之前,必须指定要获取内容的格式。由于剪贴板中的数据可能存在多种格式,所以有必要对剪贴板的格式类型先做一些了解。W写下了以下的测试代码:
procedure TForm1.Button3Click(Sender: TObject);
var
  i: integer;
  Buffer: PChar;
  s: string;
begin
  Memo1.Lines.Clear;  //增加了一个Memo控件来跟踪数据
  with TClipboard.Create do  //利用TClipboard追踪剪贴板
  begin
    GetMem(Buffer, 20);
    for i:=0 to FormatCount - 1 do
    begin
      GetClipboardFormatName(Formats[i], Buffer, 20);
      s := StrPas(Buffer);
      Memo1.Lines.Add(Format('%s:%d', [s, Formats[i]]));
    end;
    FreeMem(Buffer);
    Free;
  end;
end;
点击Button3,在Memo1文本框中显示出以下的内容:
DataObject:49161
Object Descriptor:49166
Rich Text Format:49312
HTML Format:49394
HTML Format:14
HTML Format:3
PNG:49672
GIF:49536
JFIF:49538
……
很明显,第4行的“HTML Format:49394”应该就是HTML编辑器真正需要的格式。由于“HTML Format”并不是剪贴板默认支持的格式,所以W需要使用API函数RegisterClipboardFormat先进行注册。
procedure TForm1.Button4Click(Sender: TObject);
var
  s: string;
  hMem: DWORD;
  CF_HTML: DWORD; // 声明一个CF_HTML剪贴板格式
  txtPtr: PChar;
begin
  CF_HTML := RegisterClipboardFormat('HTML Format');  //注册HTML Format格式
  with TClipboard.Create do
  begin
    hMem := GetAsHandle(CF_HTML);
    txtPtr := GlobalLock(hMem);
    s := StrPas(txtPtr);
    GlobalUnlock(hMem);
    Memo1.Lines.Add(UF8Decode(s));
    Free;
  end;
end;
单击Button4就可以在memo1中看到真定html格式文本。


相关文档:

Delphi拾遗(8) 类事件

类的事件
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyEvent = procedure of object; //不带参数的过程
TMyEventExt = procedure(AName: string) of object; //带参数的过程

TForm1 = class(TForm)
......

javascript Html 导出为word excel

<HTML>
<HEAD>
<title>WEB页面导出为EXCEL文档的方法
</title>
</HEAD>
<body>
<BR>
<table id = "PrintA" width="100%" border="1" cellspacing="0" cellpadding="0" bgcolor = "#61FF13">
<TR style="text-align : center;" mce_style="text-ali ......

DELPHI基础教程读书笔记

设置字体的过程
Procedure TForm1.FontDlgApply(Sender:Tobject);
begin
Button1.Font:= FontDialog1.Font;
end; 
该程序只有当用户按动About框的按钮或被About窗控制图标关闭窗口后,才会回到主窗体中,而不能与第一个窗体发生交互行为。这就是方法Show和ShowModal的主要不同之处
集合类型是一群相同类型元素的组合 ......

Delphi 获取句柄 sendmessage

查找另外一个窗口的句柄: handle := FindWindow(nil,PChar('窗口的标题'));//查到窗体句柄
查找子窗体:childHandle := FindWindowEx(handle,0,'子窗体类','子窗体标题');
另外有个枚举子窗体的API,EnumChildWindows(主创体句柄,@回调函数,用户参数);
用这个函数需要自己写一个回调的函数,比如:
function EnumChil ......

Smarter Records in Turbo Delphi / Delphi 2006

type
TTurboRecord = record
strict private
fNameValue : integer;
function GetName: string;
public
NamePrefix : string;
constructor Create(const initNameValue : integer) ;
property Name : string read GetName;
end;
var
Form1: TForm1;
implementation
{$R *.dfm} ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号