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

📄 d_note05.htm

📁 delphi学习笔记
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>心得05</title>
<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">心得05</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>[ <a href="d_note04.htm">心得04</a> ]</nobr> <nobr>[ 心得05 ]</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>99-1-28 10:13<br>
今天忽然发现<strong>Delphi4.0的quick report</strong>不好用了。<br>
在财务科,有我开发的一个应用,原来一直用得好好的。自从我升级到了Delphi4,<br>
又因改动重新编译,再运行时,quick report的preview的所有按钮都没有了图标,<br>
除了最后的那个'close'。原先的报表现在打印出来变了样,有个currency类型的<br>
cash项,因为autosize设成了true,每次打印时总是分成2行,第一行是¥,第二行<br>
才是值;column header 在第一页不打印!</p>

<p>98-12-31<br>
下面技巧<em>大概</em>来自Kiven的“电子书库”,(因为后来我又找不到了)<br>
<strong>在IDE中设置书签(爽!)<br>
</strong>Ctrl+Shift+0~9 设置书签<br>
Ctrl+0~9 快速跳转到书签的位置</p>

<p>98-12-31<br>
看了<a href="download/uddf.zip">UDDF(Unofficial Delphi Developers FAQ)</a>,哇噻,好东西多多!!!<br>
现在我没空,等抽空再捡有用的翻译几篇。如果你的英文够好,不<br>
妨自己先下载看一下。</p>

<p>98-12-21&nbsp;&nbsp; 以下tips来自“<a href="http://www.zhanglong.com/softwork/NoteBook/showdetail.asp?id=6">四眼工作室</a>”<br>
数据库应用程序中一般都会有备份功能,即<strong>复制一个完全相同的数<br>
据库</strong>。可以这样实现:假设table1已关联着要被复制的库了,<br>
t: TTable;<br>
...<br>
Table1.Active := True;<br>
t := TTable.Create(self);<br>
t.DatabaseName:=&quot;c:\test\creattab&quot;;<br>
t.TableName:=&quot;BackUP.db&quot;;<br>
t.Fielddefs.Assign(Table1.Fielddefs);<br>
table1.IndexDefs.Update;<br>
t.IndexDefs.Clear;<br>
t.IndexDefs.Assign(Table1.Indexdefs);<br>
t.CreateTable;<br>
t.BatchMove(Table1,batAppend);<br>
t.Close;<br>
-----------------------------------<br>
当我们<strong>用DBGrid显示Table中的记录时,有时候需要左边的一列<br>
或两列在做水平滚动时不被移出屏幕</strong>。如就有人向我提出在做水平<br>
滚动时,&quot;姓名&quot;字段能不能始终保留在屏幕上,由于DBGrid控件<br>
没有FixdCols属性,但TStringGrid控件有,如果我想让DBGrid<br>
最左边的那一列固定,可以这样写:<br>
TStringGrid(MyDBGrid1).FixdCols=2; <br>
如果想让最左边的两列固定就写成:<br>
TStringGrid(MyDBGrid1).FixdCols=3;<br>
依次类推。在实际使用中对纯浏览没有任何问题,但同时要<br>
对表格录人的话会有点小问题,但无碍大局<br>
另外要注意的是:DBGrid所涉及的Table要先置Active为True<br>
然后再执行上面置固定列数的语句,否则不起作用。<br>
<br>
<strong>注</strong>:我在编程时遇到过这个问题,但却没有想到这个看似简单的解决方法。<br>
惭愧呀惭愧。</p>

<p>98-12-21&nbsp; (文摘) <strong>Delphi4.0与Delphi3.0之间的区别</strong><br>
当然,如果你幸运地得到了Delphi4,就可以更容易地开发功能更<br>
加强大的应用程序,特别是从一开始就使用Delphi4进行工作。但<br>
是它与3.0版在某些地方有一些区别,在3.0环境下开发的早期软<br>
件有时需要进行调整方能在4.0编程环境下适应。同样,将它再返<br>
回3.0中调试,就有许多的属性不能被认识了(3.0版也算旧?真<br>
是—这世界变化快!)。为支持原3.0版本下开发的软件,在调入<br>
4.0版本中时,应用软件被自动调整了一些东西,如加入了窗体建<br>
立(FROMONCREATE)事件的响应顺序设置的旧版本兼容代码,因<br>
为新版本对这个响应顺序进行了调整。新版本中的QuickReport控<br>
件是3.0的升级版,虽然它的功能有所增强,但某些时候还不如旧<br>
版本。如在老版本中设计的打印控件如果不在BAND内,仍可正确<br>
打印,而新版却规范得要求所有打印信息必须包含在BAND中,否<br>
则什么效果也不显示,当然不能正确打印了。所以将QRLabel,<br>
QRDBText这样的控件直接放入QuickRep报表控件中进行打印是行<br>
不通了。这一点在用不同版本的DELPHI开发时就要注意了。旧版<br>
本中的TeeChart控件中的某些控件属性的常量值,在新版本中也<br>
不能认识,可能需要首先进行声明。如语句:<br>
DBChartnumber.Gradient.Direction:= gdRightLeft中,<br>
颜色渐进方式:gdRightLeft等常量在代码方式下就不能被DELPHI4<br>
认识。如前面所讲,Delphi4当然增了许多新功能,简单的如位图<br>
菜单等,但它的运行速度也是个问题,在奔腾166档次以下的机器<br>
中,还是用3.0好。在早期3.0版中做的工作如果升级到4.0中继续<br>
的话可能会重头开始,甚至行不通。如许多第三方的控件支持工<br>
具,可以安装到3.0中运行(提供了1/2/3各版的支持),由于3.0<br>
版的支持库文件.DPL已经变为4.0的.BPL,所以这些第三方开发工<br>
具就已经无效了,除非有这些工具的源代码,重新编译一遍—这<br>
是极不现实的。我们现在得到的Delphi 4可能是它的Beta版,看<br>
看它附带的ISEXPRESS安装工具名(InstallShield For Delphi 4<br>
Beta)就知道了。 <br>
----看了这篇短文,我决定暂不升级到4.0,因为我的CPU是K5-133.</p>

<p>98-12-8<br>
请看我在《中国计算机报》上发表的<a href="http://www.ciw.com.cn/ciw/783/d1102.htm">巧用ActiveX控件制作全功能浏览器</a></p>

<p>98-12-8&nbsp; <br>
下面的小技巧来自<a href="http://www.netease.com/~qiu/">http://www.netease.com/~qiu/</a>,对我来说,十分有用。<br>
问题:很多软件安装后都会<strong>在桌面上生成自己的快捷图标(Shortcuts)或<br>
在Start Menu中加入一项</strong>,如Winzip等,这是如何实现的呢?<br>
技巧26:好了,启动你的Delphi 3!在窗口中放一个TButton,起名叫做<br>
Button1。双击这个Button,然后照抄下面的代码即可:(下面的代码读<br>
取了注册表中的<br>
HKEY_CURRENT_USER\Software\MicroSoft\Windows\CurrentVersion\Explorer<br>
\Shell Folders里的某些值,详见代码)<br>
uses<br>
ShlObj, ActiveX, ComObj, Registry;<br>
<br>
procedure TForm1.Button1Click(Sender: TObject);<br>
var<br>
&nbsp; MyObject : IUnknown;<br>
&nbsp; MySLink : IShellLink;<br>
&nbsp; MyPFile : IPersistFile;<br>
&nbsp; FileName : String;<br>
&nbsp; Directory : String;<br>
&nbsp; WFileName : WideString;<br>
&nbsp; MyReg : TRegIniFile;<br>
begin<br>
&nbsp; MyObject := CreateComObject(CLSID_ShellLink);<br>
&nbsp; MySLink := MyObject as IShellLink;<br>
&nbsp; MyPFile := MyObject as IPersistFile;<br>
&nbsp; FileName := 'NOTEPAD.EXE';<br>
&nbsp; with MySLink do begin<br>
&nbsp;&nbsp;&nbsp; SetArguments('C:\AUTOEXEC.BAT');<br>
&nbsp;&nbsp;&nbsp; SetPath(PChar(FileName));<br>
&nbsp;&nbsp;&nbsp; SetWorkingDirectory(PChar(ExtractFilePath(FileName)));<br>
&nbsp; end;<br>
&nbsp; MyReg := TRegIniFile.Create(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
'Software\MicroSoft\Windows\CurrentVersion\Explorer');<br>
<br>
&nbsp; // 下面的这行代码在桌面上生成快捷图标<br>
&nbsp; Directory := MyReg.ReadString('Shell Folders','Desktop','');<br>
<br>
&nbsp; // 下面的这三行代码在Start Menu中加入相应的ShortCut<br>
&nbsp; Directory := MyReg.ReadString('Shell Folders','Start Menu','')+'\Whoa!';<br>
&nbsp; CreateDir(Directory);<br>

⌨️ 快捷键说明

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