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

📄 d_note04.htm

📁 网友学习笔记.rar
💻 HTM
📖 第 1 页 / 共 2 页
字号:
里的控件是我所见过的中文站点中最多、最全的建议朋友们如果想
找控件的话,就到这里来找找。</pre>

<pre>98-10-12 1:15
上月调试GameMenu时,出现了<strong>莫名其妙的系统故障</strong>,结果再次打
开Gamemenu.dpr时,竟然连续出现错误,大体是什么VCL30.dpr,
什么&quot;Access violation&quot; &quot;FFFFFFFF&quot;,还有
  Error reading FileList.columns: Stream read error.

等等。把子目录下的内容完全拷贝到另一台好机器上,同样错误
再次出现。一个多月前倒是有个备份,可那以后我又改了好多……
真的不想重新来过!只好想想办法。在资源管理器里双点main.dfm,
Delphi现身出来把它打开成为一个文本文件(用Notepad等工具
是不成的。)记得有一个错误信息是关于“ListView”的。找到
ListView那行:</pre>

<pre>    object FileList: TListView
      Left = 0
      Top = 0
      Width = 246
      Height = 329
      Align = alClient
      ColumnClick = False
      OnClick = FileListDblClick
      Columns = &lt;
        item
          Caption = '文件名'
          Width = 450
        end
        item
          Caption = '大小'
        end
        item
          Caption = '文件类型'
          Width = 150
        end
        item
          Caption = '文件日期'
          Width = 130
        end&gt;
        ... (略去12行)
    end
看来这个ListView的Column属性可能不大对。试着把Columns=
到end&gt;和它们之间的行删掉,save,再打开Gamemenu.dpr,行
了!!!

但在进一步调试时,存盘后又出现了同样的错误。我增加了一
个ListView,各项属性调成和FileList一样,删除FileList,
把就增元件改名为ListView,这回彻底解决了问题。

这可是我自学Delphi以来解决的影响最大的困难。我想回头再
仔细看一下到底是哪一行出的毛病,但就是找不着了。虽然有
一点点莫名其妙,但仍值得大书特书。</pre>

<pre>1998-10-10
正在编写一个简易浏览器,在<strong>自动拨号上网</strong>部分遇到了一点麻烦:
  shellexecute(self.handle,'connect',
               'C:\WINDOWS\Start Menu\Internet\169.lnk','','',sw_show);
运行到此,会出现熟悉的拨号窗口,但要等待按回车。怎样才能自动拨号呢?
(又:怎样得到当前IP地址?)</pre>

<pre>1998-10-10
昨天上《中国计算机报》站点一看,简直要打心眼里乐出来:这期发表了两篇!不
错嘛。可惜这两个星期忙着搬家,几乎都荒废了Delphi的学习。今天上网,又找
到许多中文Delphi站点。看到网上的朋友个个功力非凡,我心忐忑;下载了几个
好东西,我意踌躇。革命尚未成功,同志仍需努力!

98-10-10 23:14
<strong>定制 Code Insight</strong>
在编制Delphi程序时,有一个小小的细节老是处理不好:输入
begin ... end 语句对,有人为了减少出错的机会,喜欢这样
做:输入“begin”,回车,回车,“end;”,再用光标键回
到begin下方继续输入内容;有人为减少击键次数,直接输入
begin,内容,end。对我来说,这两种方法都有可取之处。用
Code Insight试试吧。在主菜单里选 Tools -&gt; Environment,
找到 Code Insight 一栏,点击“Add”,“Shortcut Name”
为 begin,“Description”输入“begin ... end”。最后在
下方的文本框里输入:

begin
  |
end;

OK。回到熟悉的编辑窗口,输入begin,按Ctrl-J,真爽!不知
这个小小的改动,将会带来多少方便。

98-10-10 2:07
延时:
procedure WinDelay( Duration : Longint );
var
  Start : Longint;
begin
  Start := GetTickCount;
  while GetTickCount - Start &lt;= Duration do
    Application.ProcessMessages;
end;

<i>98-09-15 15:14</i>
<b>我又发表了一篇稿件,但是...</b>
这次的稿件在《中国计算机报》的9月7日D14版上。题目中“我和Delphi和故事”。
可我看完之后,一点也乐不起来。因为我把整个“开发心得”的内容都整理在里面
了。发表的部分只是其中我认为最微不足道的。而且还包括了半个月前的“Delphi
使用经验四则”里的两条!真难为情。

<i>98-09-01 15:49</i>
<b>Delphi的一个“小”故障</b>
今天在用Delphi时,发现Query组件的属性无法编辑了。当我试图打开一个已有的
Query的SQL属性时,Delphi提示:
  RichEdit line insertion error.
这是一个奇怪的错误信息。开始,我想重装一遍Delphi。这样问题一定可以解决。
接着,我改变了主意。也许正好能做一下试验。我打开光盘上的Delphi文件夹下的
把RUNIMAGE\DELPHI30\BIN下的所有文件复制到我的Delphi 3\bin下。不行……
这真是出乎我的意料。对了,想一下那句提示:RichEdit...,正好我的Win98里面
没有安装写字板,而写字板也是能做RichEdit处理的软件。于是在控制面板里选择
安装/删除程序,安装了Win98的写字板组件,再次启动Delphi,OK!

<i>98-8-28 0:09</i>
<b>在程序中调用Win95的“请选择文件夹”对话框</b>
这真是一个困扰我多日的难题。但今晚偶然查看RX元件包里的Fileutil.pas时,却
有种“踏破铁鞋无觅处,得来全不费功夫”的感觉。源码太难,怎么也看不懂……
不管它,先试试再说。我先点击“Add file to project”按钮,在对话框中选择
RX\Units\Fileutil.pas,再在Form1的uses子句里加上fileutil,在Form1上增加
一个按钮,双击它,输入如下语句:
  BrowseDirectory(s,'abc',0);
  showmessage(s);
运行,单击按钮,盼望已久的对话框终于出现!随便选一个,按OK,接着显示出已
选的文件夹的全称。小意思!

这件事远未结束。我又找到了好几个很棒的函数/过程库,包括:Bdeutils.pas,
Apputils.pas,Dateutil.pas,Dbutils.pas,Strutils.pas。瞧这些名字!我逐个打
开它们,眼都看得花了。有的函数是我在编程中想到要用的,更多的都是些精致的、
“懒人”专用的函数库。这几个是用BDE API做的:
procedure SetIndex(Table: TTable; const IndexFieldNames: string);
procedure RestoreIndex(Table: TTable);
procedure PackTable(Table: TTable);
procedure ReindexTable(Table: TTable);
这几个多是用了WinAPI:
function FindForm(FormClass: TFormClass): TForm;
function FindShowForm(FormClass: TFormClass; const Caption: string): TForm;
function ShowDialog(FormClass: TFormClass): Boolean;
procedure SaveGridLayout(Grid: TCustomGrid; IniFile: TIniFile);
这些是各种各样的日期型函数:
function CurrentYear: Word;
function IsLeapYear(AYear: Integer): Boolean;
function DaysPerMonth(AYear, AMonth: Integer): Integer;
function FirstDayOfPrevMonth: TDateTime;
篇幅所限,无法一一列举。有机会我一定会好好研究的。
这次的情形好象我要找一匹千里马,结果不光如愿以偿,还找到了《内功心法》以及
《轻功秘笈》,能不高兴吗?

<i>98-08-27 10:01</i>
<b>本地SQL中日期型数据的表示</b>
因开发需要,我想对日期型的字段进行条件限制。在Database Desktop中输入SQL语句
  select * from acc a where a.'date'='98-07-27'
DBD显示:Type mismatch in expression
查遍了DBD的Help,也没有找到日期型数据的转换函数。试了各种表达方式,也做不出。
我急了,想起Delphi提供了一个功能强大的QBE(Query by example)。我选择File-&gt;
New-&gt;QBE Query,在接下来的对话框里选acc.db,窗口上出现了acc表的各字段名称的
列表。我在Date字段前打了个勾,并输入'today',按F8,结果出来了。我再按下“Show
SQL”按钮,哈哈,一个标准的SQL语句显示出来:
  SELECT DISTINCT &quot;acc.DB&quot;.&quot;Date&quot;
  FROM &quot;acc.DB&quot; 
  WHERE
  (&quot;acc.DB&quot;.&quot;Date&quot; = '08/27/1998')
  ORDER BY &quot;acc.DB&quot;.&quot;Date&quot;
原来,Paradox是用“/”来分隔日期的。到此为止,真相大白。
查看联机帮助,要改变Paradox的日期格式,应使用BDE Administrator。我依言而行,
在BDE Administrator中选Configuration-&gt;System-&gt;Formats,将SEPERATOR由“/”改
为“-”,存盘。退出DBD,进入DBD,再次重复上面的查询……怎么?!还是08/27/1998!
也许Delphi在这里做得不够完善也未可知。

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

<p align="center"> </p>
</td></tr><!--msnavigation--></table></body>
</html>

⌨️ 快捷键说明

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