⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d_note04.htm

📁 网友学习笔记.rar
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>

<head>
<title>心得04</title>
<meta NAME="Author" CONTENT="安富国">
<meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0">


<meta name="Microsoft Border" content="tlb, default"></head>

<body><!--msnavigation--><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td>

<h1 align="center">心得04</h1>

<h4 align="center"><nobr>[ <a href="d_note00.htm">心得00</a> ]</nobr> <nobr>[ <a href="d_note01.htm">心得01</a> ]</nobr> <nobr>[ <a href="d_note02.htm">心得02</a> ]</nobr> <nobr>[ <a href="d_note03.htm">心得03</a> ]</nobr> <nobr>[ 心得04 ]</nobr> <nobr>[ <a href="d_note05.htm">心得05</a> ]</nobr> <nobr>[ <a href="d_note06.htm">心得06</a> ]</nobr> <nobr>[ <a href="d_question.htm">疑难问题</a> ]</nobr></h4>
</td></tr><!--msnavigation--></table><!--msnavigation--><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td valign="top" width="1%">

<p></p>
</td><td valign="top" width="24"></td><!--msnavigation--><td valign="top">

<p>98-11-1 1:48<br>
嘿嘿,今天找到了Windows95的<strong>“浏览文件夹”对话框的调用方法</strong>。<br>
竟然简单得很:用SHBrowseForFolder。同时还找到了另外几个有用<br>
的API,SHGetDesktopFolder,SHChangeNotify,SHAddToRecentDocs,<br>
SHFileOperation,SHGetFileInfo,SHGetInstanceExplorer等等。</p>

<p>98-10-28 21:04<br>
<strong>多线程里有文章</strong><br>
我编的金手指(Webmoney)运行得挺好,只有一点:拨号后常常<br>
会发生“非法指令”错,导致中途退出。这个中原因也很不易<br>
找。但我发现在Dialup过程中,产生了第二条Thread,心念一<br>
动,在DialStatusDlg里的Dial成功后,并不立即关闭这一Form,<br>
增加了一段延时(2秒),此后拨号功能使用起来就一切完全正<br>
常,这说明,很可能是拨号完成后,立即关闭产生拨号过程的<br>
Form,会造成拨号Thread完成返回时找不着“北”,极易发生<br>
上述的“非法指令”错。<br>
<br>
98-10-28<br>
我的<a href="http://www.ciw.com.cn/ciw/771/d0901.htm">介绍RXLib的文章</a>在<a href="http://www.ciw.com.cn">《中国计算机报》</a>上发表了。在这里介绍一<br>
下<strong>安装过程</strong>。(仅对2.50版而言)</p>

<p>运行RXLib.zip里的rxlib250.zip里的rxinst.exe,它自动释放到Delphi<br>
下的RX子目录里。运行Delphi,选择File-&gt;Open...,打开unit里的<br>
DCLRXCTL.dpk,点击 Install,不一会,RX Controls元件组就装好<br>
了。<strong>关闭这个Package窗口</strong>,打开DCLRXDB.dpk,再Install,装上<br>
RX DBAware。<strong>关闭这个Package窗口</strong>,打开DCLRXTLS.dpk,Install,<br>
出现错误提示;注意到Code 窗口里有一Dclrx4的页,关闭这一页,<br>
再Install,OK。</p>

<p>到这一步,安装已经算是完成了。下面打开RX\Demo\RXDemo.dpr,运<br>
行一下。哼!一点都不Cool…… 但别忙下结论,好好看一下,是不是<br>
每一项新功能都极其实用呢?</p>

<p>98-10-26<br>
今天在maillist上抓到<strong>两个有用的例程</strong>:<br>
unit Tools;<br>
<br>
interface<br>
<br>
uses<br>
Windows,<br>
WinSock,<br>
SysUtils;<br>
<br>
function LocalIP : string;<br>
function LocalComputerName : string;<br>
<br>
implementation<br>
<br>
{$R *.DFM}<br>
function LocalIP : string;<br>
type<br>
TaPInAddr = array [0..10] of PInAddr;<br>
PaPInAddr = ^TaPInAddr;<br>
var<br>
phe : PHostEnt;<br>
pptr : PaPInAddr;<br>
Buffer : array [0..63] of char;<br>
I : Integer;<br>
GInitData : TWSADATA;<br>
<br>
begin<br>
WSAStartup($101, GInitData);<br>
Result := '';<br>
GetHostName(Buffer, SizeOf(Buffer));<br>
phe :=GetHostByName(buffer);<br>
if phe = nil then Exit;<br>
pptr := PaPInAddr(Phe^.h_addr_list);<br>
I := 0;<br>
while pptr^[I] &lt;&gt; nil do begin<br>
result:=StrPas(inet_ntoa(pptr^[I]^));<br>
Inc(I);<br>
end;<br>
WSACleanup;<br>
end;<br>
<br>
function LocalComputerName : string;<br>
var<br>
Buffer : pchar;<br>
I : Integer;<br>
begin<br>
getmem(buffer,100);<br>
i:=99;<br>
GetComputerName(Buffer,i);<br>
Result := string(Buffer);<br>
freemem(buffer);<br>
end;</p>

<p>98-10-25<br>
在调试GameMenu时,每当我在Delphi集成环境里第二遍或第三遍运行的<br>
时候,就会出现<strong>莫名其妙的死机现象</strong>,最后系统会不稳定,还总是会出<br>
现蓝底白字的提示画面。总是找不到原因,只要不在集成环境里运行,<br>
重复多少遍都没问题。后来我一步一步地单步执行,发现在<br>
&nbsp; SmallImages.Handle := ShGetFileInfo('*.*', 0, SHFileInfo,<br>
&nbsp; SizeOf(SHFileInfo), SHGFI_SMALLICON or SHGFI_ICON or SHGFI_SYSICONINDEX);<br>
处程序会自动分成两个线程同时运行。这说明ShGetFileInfo调用是一<br>
个线程级的系统调用。后来又发现,在集成环境中如果在上次运行结束<br>
后等好几秒钟再运行,就没有死机现象再发生。看来Delphi有一套自己<br>
的管理线程的机制,在多线程环境里,程序结束后,有的线程并没有结<br>
束,如果立即再次运行,往往会造成系统崩溃。</p>

<p>98-10-23<br>
<strong>INI文件注意事项</strong><br>
INI文件的优点显而易见:它是文本文件,能够直接查看和编辑;Delphi<br>
提供了对INI文件的极其方便的过程和函数。在使用中,应该注意,如<br>
果运行下面语句,那么将在Windows子目录中打开这一INI文件:<br>
&nbsp;&nbsp;&nbsp; ini:=tinifile.create('myapp.ini');<br>
如想打开当前工作目录里的myapp.ini,应该这样写:<br>
&nbsp;&nbsp;&nbsp; ini:=tinifile.create('.\myapp.ini');</p>

<p>98-10-20<br>
“金手指”由于使用了Net Manage公司的控件THTML,造成必须同时安<br>
装NM*.dll和好几个.ocx文件才能运行。都怪我只顾低头编程,没有测<br>
试安装方面的问题。THTML还有一个缺点就是当一个请求超时或找不到<br>
对方地址时,会产生难以控制的异常,并退出程序。到处找THTML的替<br>
代控件也找不到,问了一位网上高手也没有帮助,真愁人啊!</p>

<p>想起ACTIVE-X。在菜单里找到并选中Import ActiveX Control,出现<br>
所有Delphi能够安装的ActiveX组件。在各式各样的组件里,我找到了<br>
描述为“Microsoft Internet Controls(Version 1.1)”,文件路径为 <br>
c:\windows\system\shdocvw.dll的ActiveX控件。(这名字可够怪,是不是<br>
微软害怕别人看出这就是他的杀手锏:<strong>IE4</strong>?)</p>

<p>安装(Install),选OK,下面的对话框询问要不要现在就Rebuild,选yes。<br>
结束后,将在ActiveX组里出现三个新增组件:Webbrowser_V1,<br>
Webbrowser和ShellFolderViewOC。关闭当前Package窗口,并保存。</p>

<p>把一个Webbrowser放入Form里,属性窗口即出现它的长串的属性。找<br>
了许久,也没有找到自己料想的“URL”属性。难道我弄错了?我不愿<br>
就此放手,因为已没有别的选择。增加一个按钮Button1,双点进入它<br>
的onClick事件,输入Webbrowser1,又键入一个点,很快,Webbrowser<br>
的属性、事件、方法都显示出来了。(Delphi3的Code Insight真好用。)<br>
我逐个翻找,发现了:Navigate: procudure(CONST:UTL...一看有门,我<br>
按照函数原形,在前面定义:var ov:olevariant;然后输入代码:<br>
webbrowser1.Navigate('http://default/afg/index.htm',ov,ov,ov,ov);<br>
运行,硬盘哗哗地响了一段时间,出现了我的主页!效果和使用IE4一<br>
模一样!!看看办公室没别人,我哈哈大笑了两声。</p>

<p>素闻Delphi3拥有对ActiveX的绝好支持,今日方始亲身体会得到。信手<br>
得来的别人的控件,Delphi象用自己的一样随心所欲。选取View|Browser,<br>
在对象浏览器里查看新增的Webbrowser等控件的各项属性,哇噻!<br>
简直是把整个IE4浏览器搬进来了。</p>

<p>98-10-17<br>
经历了5个不眠之夜,终于写完了“<strong>金手指</strong>”(Webmoney)。呼!<br>
累惨了。今天为它申请了一个免费域名<a href="http://webmoneys.yeah.net">http://webmoneys.yeah.net</a>,<br>
把它放在963个人主页站上。</p>

<p>98-10-13<br>
正当我为编程拨号发愁时,在<a href="http://delphi32.sonic.net.cn/delphigb/default.htm" ADD_DATE="898835268" LAST_MODIFIED="898835255" LAST_VISIT="905832334">32 Bit Delphi 深度历险</a>发现<br>
<strong>一个好控件:Dialup。</strong>安装后,用起来简直好极了,看了demo<br>
后我知道,我需要的90%以上的拨号功能都能用它实现。我越来越<br>
喜欢Delphi,有了开放的控件,编起程序来用上别人做的现成的<br>
好东西,方便极了。</p>

<pre>值得一提的是<a href="http://delphi32.sonic.net.cn/delphigb/default.htm" ADD_DATE="898835268" LAST_MODIFIED="898835255" LAST_VISIT="905832334">32 Bit Delphi 深度历险</a>这个站点,看来已有两
三个月没有更新过了,但仍有很大的参考价值,速度也比较快。这

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -