Delphi操作XML的几个博客

http://www.cnblogs.com/acuier  整整十几篇,省得我自己研究,学一下就可以了。

测试颜色:

// 找到了WM_PAINT消息处理,既然找到了,那么对WM_PAINT消息也算有个交代了,于是上面所有的WndProc全部正常结束。
// 除非TWinControl.WMPaint里面再继续执行复杂的调用,否则Button1.Update就算执行结束了。
procedure TWinControl.WMPaint(var Message: TWMPaint);
var
  DC, MemDC: HDC;
  MemBitmap, OldBitmap: HBITMAP;
  PS: TPaintStruct;
begin
  // 注意,这里是重画句柄控件,重画图形控件不在这里
  // fixme 不知道什么时候是双缓冲
  if not FDoubleBuffered or (Message.DC <> 0) then
  begin
    // 自己不把自己算做子控件,所以这个函数是用来重画子控件的。
    // 想画自己,就得另外覆盖Paint;函数,但是发消息给子控件重画这件事情,这里已经帮助程序员写好了(子控件自己还是要覆盖Paint;才能保证正确画自己)
    // 注意csCustomPaint这个风格
    if not (csCustomPaint in ControlState) and (ControlCount = 0) then
      inherited // 假牙,父类根本就没有相关函数,什么都不做。fixme,好像是通过父类来重画自己
    else
      PaintHandler(Message);  // 一般走这里,给所有子控件做剪裁并重画(挨个发送WM_PAINT消息)
  end
  else
  begin
    // 准备内存画板,此时还没有Canvas,所以用API旧方法
    DC := GetDC(0);   // 参数0代表取得整个屏幕的DC
    MemBitmap := CreateCompatibleBitmap(DC, ClientRect.Right, ClientRect.Bottom); // 创建当前DC的画板(大概是为了保留除了当前窗口以外的显示内容,跟画板的底板一样)
    ReleaseDC(0, DC); // 留下MemBitmap,然后释放整个屏幕的DC
    MemDC := CreateCompatibleDC(0); // 创建当前DC的兼容DC
    OldBitmap := SelectObject(MemDC, MemBitmap); // 把MemBitmap画板放到MemDC里去,就可以准备在MemDC里画了
    try
      DC := BeginPaint(Handle, PS); // 返回值是指定Window的DC
      // 双缓冲工作真正开始
      Perform(WM_ERASEBKGND, MemDC, MemDC); // 当前控件使用MemDC擦除背景
      Message.DC := MemDC;  // 构建一个消息,把MemDC传入,当前控件和子控件都在MemDC上画
      WMPaint(Message); // 递归调用函数(构建了一个消息,但不是发生消息),而且此时的DC不等于0,因此条件成立,进入块执行PaintHandler
      Message.DC := 0;  // 消息使用完毕,消息参数复位,但是通过消息得到的MemDC所有数据都在
      // 画完了内存画板,准备切换
      BitBlt(DC, 0, 0, ClientRect.Right, ClientRect.Bottom, MemDC, 0, 0, SRCCOPY); // 把画好所有控件的MemDC一次性拷贝到指定Window的DC
      EndPaint(Handle, PS); // 结束画图过程
    finally
      SelectObject(MemDC, OldBitmap);
      DeleteDC(MemDC);
      DeleteObject(MemBitmap);
    end;
  end;
end;

  

时间: 2024-10-17 22:05:44

Delphi操作XML的几个博客的相关文章

Delphi操作XML - 冰雪傲骨

Delphi操作XMl,只要使用 NativeXml.我是用的版本是4.02.NativeXML的使用方法比较简单,但是功能很强大. XE2的话,要在simdesign.inc后面加上: // Delphi XE2 / 16 {$ifdef VER230} {$define D7UP} {$define D10UP} {$define D15UP} {$endif} 一.使用 1) Copy the NativeXml files from the NativeXml directory int

Delphi 操作 XML(一)

一.欢迎 本帮助文件提供从SimDesign BV的NativeXml组件的信息. 二.购买NativeXml! NativeXml现在是开源的,但支持是仅专门适用于购买NativeXml的客户. 您可以通过此链接购买NativeXml:http://www.simdesign.nl/xml.html 价格:29.95欧元 采购NativeXml的优势: 两年的通过电子邮件或特殊的"NativeXml Source"论坛支持,接收测试和修正,并从"NativeXml Sour

delphi 操作 XML (二)

在装有Win7 32位系统的台式机上 先卸载旧驱动,再重新安装. 对设备管理器里的U转串口设备从本地更新驱动,选择下图文件 系统弹出红色提示框(是否安装XXXX驱动),选择安装,随后该设备由无法启动变为工作正常. 在Win8 64位系统上 安装驱动后,出现下图情况,设备无法启动(错误代码10) 选择08年的驱动后,串口恢复正常. 总结 这些驱动有很多不兼容的,特别是在高级Windows版本或64位系统上,解决的思路就是多尝试安装各种版本,并根据串口状态调整安装策略. delphi 操作 XML

delphi操作xml学习笔记 之一 入门必读

Delphi 对XML的支持---TXMLDocument类 Delphi7 支持对XML文档的操作,可以通过TXMLDocument类来实现对XML文档的读写.可以利用TXMLDocument把XML文档读到内存中,从而可以进行编辑.保存操作.TXMLDocument类是通过DOM(文档对象模型)接口来访问XML文档中的各个元素的.对于DOM接口的实现有多种方式,Delphi支持的方式有:1)微软的MSXML SDK,这种方式是通过COM对象来实现:2) Apache 的Xerces的实现方式

Delphi操作XML简介

参考:http://www.delphifans.com/InfoView/Article_850.html Delphi 7支持对XML文档的操作,可以通过 TXMLDocument类来实现对XML文档的读写.可以利用TXMLDocument把XML文档读到内存中,从而可以进行编辑.保存操作.TXMLDocument类是通过DOM(文档对象模型)接口来访问XML文档中的各个元素的.对于DOM接口的实现有多种方式,Delphi 支持的方式有 1)微软的MSXML SDK,这种方式是通过COM对象

就C语言的指针、链表的原理和各类操作撰写一篇技术博客,说说自己学习C语言指针和链表的体会

一.指向结构体变量的指针变量 指向结构体变量的指针变量的定义形式与一般指针变量的定义形式相同,只是将其指向类型定义为结构体类型即可.例如:        struct person            { charname[20];             char sex;             int age;             float height;            };       struct person *p;则指针变量p,它可以指向struct person类

Z Order of Controls in Delphi FireMonkey(Tom Yu的博客)

Get and set the Z Order of controls at runtime in Delphi FireMonkey. This is a follow on to my earlier post where I provided a VCL solution.Now Ive created a free FireMonkey unit that has the same get and set routines as the VCL solution.  The full s

Java生成和操作Excel文件 - 残星 - 博客园 (2)

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

Java生成和操作Excel文件 - 残星 - 博客园

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;