当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 引 言 这篇文章最先发表于2000年07月25日,最后一次修改是在2001年02月07日。
 

 

    摘要: 许多人问我,为什么你会开发tcad呢?谁给你的点子呢?  一说起这个问题,往往会让我想起许多在计算机面前的经历,有欢乐也有悲伤,有成功也有失败.  tcad的开发正是来自于我以前开发的软件的失败!也就是说我根本不是为了开发tcad而开发的,而是开发另一个软件中,需要矢量绘图的功能.正是因为我在矢量绘图的功能上花的时间太多而导致那项目彻底的失败. 由于项目的失败,而且经常加夜班,透支生命,再加上一......
 ·改变windows的缺省打印机    »显示摘要«
    摘要: 如果你想要改变windows的缺省打印机,你必须在windows的win.ini中改变设备键。 发送一条 wm_wininichange 消息: var strini: array[0..max_path] of char; arrwindows: array[0..64] of char;begin getwindowsdirectory(strini, sizeof(strini)); s......


老文章——TWebBrowser编程简述

引 言

【程序编程相关:Delphi学习:在Listbox加背景

  这篇文章最先发表于2000年07月25日,最后一次修改是在2001年02月07日.这里再次贴出的目的,一是作为前一阶段的完结,所以文章中的错误都不作修改;二是希望作为一个新的起点.我准备整理一下至今所积累的浏览器编程的知识,比较完整地写出来,与网友共勉. 【推荐阅读:在Delphi中如何维护COM+的状态信

twebbrowser编程简述 【扩展信息:在Delphi7中调试COM+

摘要:delphi 3开始有了twebbrowser构件,不过那时是以activex控件的形式出现的,而且需要自己引入,在其后的4.0与5.0中,它就在封装好shdocvw.dll之后作为internet构件组之一出现在构件面板上了.常常听到有人骂delphi的帮助做得极差,这次的twebbrowser又是microsoft的东东,自然不会好到哪里去,虽说msdn上什么都有,可是内容太过庞杂,如果没有入口点更是件烦人的事,查找起来给人的感觉大概可以用一句话来形容:非常复杂.复杂非常.

  这里有平时我自己用twebbrowser做程序的一些心得与上网收集到的部分例子与资料,整理了一下,希望能给有兴趣用twebbrowser编程的朋友带来些帮助.

1.初始化与终止化(initialization & finalization)

  大家在执行twebbrowser的某个方法以进行期望的操作,如execwb等的时候可能都碰到过“试图激活未注册的丢失目标”或“ole对象未注册”等错误,或者并没有出错但是得不到希望的结果,比如不能将选中的网页内容复制到剪贴板等.以前用它编程的时候,我发现execwb有时侯起作用但有时侯又不行,在delphi生成的缺省工程主窗口上加入twebbrowser,运行时并不会出现“ole对象未注册”的错误.同样是一个偶然的机会,我才知道ole对象需要初始化与终止化(懂得的东东实在太少了).

  我用我的前一篇文章«delphi程序窗口动画&正常排列平铺的解决»所说的方法编程,运行时出了上面所说的错误,我便猜想应该有oleinitialize之类的语句,于是,找到并加上了下面几句话,终于搞定!究其原因,我想大概是由于twebbrowser是一个嵌入的ole对象而不算是用delphi编写的vcl吧.

  initialization

   oleinitialize(nil);

  finalization

   try

    oleuninitialize;

   except

   end;

  这几句话放在主窗口所有语句之后,“end.”之前.

--------------------------------------------------------------------------------------------------------

2.emptyparam

  在delphi 5中twebbrowser的navigate方法被多次重载:

  procedure navigate(const url: widestring); overload;

  procedure navigate(const url: widestring; var flags: olevariant); overload;

  procedure navigate(const url: widestring; var flags: olevariant; var targetframename: olevariant); overload;

  procedure navigate(const url: widestring; var flags: olevariant; var targetframename: olevariant; var postdata: olevariant); overload;

  procedure navigate(const url: widestring; var flags: olevariant; var targetframename: olevariant; var postdata: olevariant; var headers: olevariant); overload;

  而在实际应用中,使用后几种方法调用时,由于我们很少用到后面几个参数,但函数声明又要求是变量参数,一般的做法如下:

  var

   t:olevariant;

  begin


...   下一页
 ·生成gbk码表    »显示摘要«
    摘要: program gengbkcode; {$apptype console} uses sysutils; var i, j: byte; mfile: textfile; begin assignfile(mfile, gbkcode.txt); rewrite(mfile); { gbk字符集范围 分区 高位 低位 -----------------......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE