如何将vba代码转换为批处理文件代码?

查看: 3721|回复: 12
改变宏安全级别的操作可否做成批处理文件
阅读权限30
在线时间 小时
虽然Excel版本已经发展到2010,但是到目前为止,我们单位上绝大部分员工仍只用Excel2003,而在03版中,要启用带宏的文档必须先将Excel的宏安全性级别调整为中或低(如截图所示),这一操作总觉得繁琐,对于一些新手来说可能还会觉得文档复杂,据我说知,.bat的批处理文件可迅速简化繁琐的注册表更改。
宏安全性.jpg (34.76 KB, 下载次数: 9)
宏 安全性 级别
20:44 上传
不知各位高手达人是否知道:
更改Excel2003宏安全性为中(或低)的批处理程序如果制作?
晚生叩谢!
阅读权限30
在线时间 小时
期待高手现身!
阅读权限95
在线时间 小时
直接做成注册表文件双击导入一下不就行了。
阅读权限30
在线时间 小时
回复 3楼 cflood 的帖子
感谢您的解答!苦于我从来没做过注册表文件,不知该如何下手。
是不是我要借助软件监测改变Excel宏安全级别过程的注册表变化,知道了注册表相应变化后又该如何做成注册表文件呢?
不知能否劳烦阁下再指点一下!谢谢!
阅读权限95
在线时间 小时
鼠标右键-导出
阅读权限30
在线时间 小时
回复 5楼 cflood 的帖子
非常感谢,我自己试试看,如若不行,再向阁下讨教!谢谢!
阅读权限20
在线时间 小时
这个好像只能手动吧
阅读权限20
在线时间 小时
我也很期待这个问题的答案
阅读权限10
在线时间 小时
不知道有没有人做出来了,很需要,要不然做好的程序让别人用,很麻烦。
阅读权限10
在线时间 小时
刚才在网上都到了一个,可以用。
快速把宏的安全级别设置为低
10:33 上传
点击文件名下载附件
427 Bytes, 下载次数: 107
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师&&&& 摘要: 作者:John H. Miller, Microsoft Corporation
摘要:SQL Server Reporting Services 通过提供基于服务器的综合性报表平台,扩展了 Microsoft Business Intelligence (BI) 的应用前景。Reporting Services 将集中式管理报表的速度、伸缩性和易管理性与桌面和 ...&&
T1.C1 , T2.C2
T1.C3 (+) = T2.C3
1、Delphi中拷贝文件的几种方法广告{方法一:用File stream }Procedure FileCopy( Const sourcefilename, targetfilename: String );VarS, T: TFileSBeginS := TFileStream.Create( sourcefilename, fmOpenRead );tryT := TFileStream.Create( targetfilename,fmOpenWrite or fmCreate );tryT.CopyFrom(S, S.Size ) ;finallyT.FfinallyS.FE{ 方法二:使用内存块进行读写 }procedure FileCopy(const FromFile, ToFile: string);varFromF, ToF:NumRead, NumWritten: WBuf: array[1..2048] of CbeginAssignFile(FromF, FromFile);Reset(FromF, 1);AssignFile(ToF, ToFile);Rewrite(ToF, 1);repeatBlockRead(FromF, Buf, SizeOf(Buf), NumRead);BlockWrite(ToF, Buf, NumRead, NumWritten);until (NumRead = 0) or (NumWritten && NumRead);CloseFile(FromF);CloseFile(ToF);2、控制INI文件要利用.INI文件做程序有关数据的存储工作,就需要能读和写.INI文件,所以列了如下方法给大家参考:{方法一:用 Windows API 函数}① 从.INI文件中获取字符串varstrResult:array[0..30] of CbeginGetPrivateProfileString(' desktop ', 'wallpaper','c:\windows\newwall.bmp' , strResult, 100, 'c:\windows\win.ini' );edit1.text:=strR //显示取得字符串② 从.INI文件中获取整数varnResult: beginnResult := GetPrivateProfileString(' desktop ', ' tilewallpaper',0 , 'c:\windows\win.ini' );edit1.text:=intostr(nResult); //显示取得整数③ 向.INI文件写入字符串WritePrivateProfileString('desktop', 'wallpaper',strWrite ,'c:\windows\win.ini');{ 方法二:使用TiniFile进行读写 }① 从.INI文件中读字符串var MyIni: TIniFbeginMyIni := TIniFile.Create('c:\windows\win.ini');edit1.text:=MyIni.ReadString('Desktop', 'Wallpaper', '');② 向.INI文件中写入字符串var MyIni: TIniFbeginMyIni := TIniFile.Create('c:\windows\win.ini');MyIni.WriteString('desktop', 'wallpaper', 'c:\a.bmp');3、用Delphi实现将纯文本资料转入数据库在我们日常工作中,常会碰到这样一个难题:一大堆收集好的纯文本格式,比较规整的资料怎样才能将它们分离,转到自己已经建好的数据库中进行管理呢?例如,有一段人事档案资料document.txt,内容如下:张强,25,助理工程师,王宏,30,工程师,李远,45,高级工程师,要将它转入数据库中,document.db结构如下:姓名,年龄,职称怎么办呢?现在通过使用delphi编程,很好地解决了这个难题。Delphi提供了许多功能强大,丰富的字符处理函数和过程,常用的有:① function Length(S:String):Integer  //返回串的长度② function Copy(S:S Index,Count: Integer):String//给出一个字符串中串的拷贝③ function Pos(Substr:S S:String); Integer  //查找子串在字符串中的位置④ Procedure Delete(Var S:S Index,Count: Integer);//从一个字符串中去除子串利用Delphi提供的已有函数和过程基础上编制自己的三个函数,实现了纯文本格式资料转入数据库功能。只要Delphi支持的数据库都可以支持。Document.txt中每行数据为一个字符串,字符串中每个被分割的数据为一个字段,分割每个字段的字符为分割符,这里是逗号,也可以是、;#等符号。具体思想是:先将字符串进行调整,然后把串中每个字符同分割符比较,将不是分割符的字符追加到MyStr串中,最后得到一个字段的内容。通过一个循环,就可以将一个字符串分成几个字段。Function GetSubStr(var aString: SepChar:String): S//得到字符串中一个子串因要改变参数aString的值,所以将它用var定义。Function GetSubStrNum(aString, SepChar: String): I//计算一个字符串要被分割成几个字段。参数:aString是所需分割的一个字符串,SepChar是分割符。Function GetSubStrNum(aString:SSepChar:String):vari:IStrLen:INum:IbeginStrLen:=Length(aString);Num:=0;For i:=1 to StrLen doIf Copy(aString,i,1) = SepChar thenNum:=Num+1;result:=NFunction GetSubStr(var aString:SSepChar:String):SvarMystr:SStrLen:ISepCharPos:IbeginStrLen:=Length(aString);SepCharPos:=Pos(SepChar,aString); //计算分割符在子串中的位置MyStr:=Copy(aString,1,SepCharPos-1); //将分割符前所有字符放到mystr串中Delete(aString,1,SepCharPos); //除去分割符和分割符前的子串GetSubStr:=MyS //返回一个字段有了上面三个函数,现在介绍一下具体的应用:① 首先建立一个窗体Forml,加入一个RichEditl(或Menol),一个按钮Buttonl和一个Tablel,设置Tablel的属性:Tablell.DataBaseName:= 'c:\test';Tablell.TableName:= 'document.db';② 分别加入以下程序:constSepChar=',' ;procedure TForm1.FormCreate(Sender: TObject);beginRichEdit1.Lines.LoadFromFile('c:\test\test.txt');procedure TForm1.Button1Click(Sender: TObject);vari,j,num:IMyLine:Sitem:array[1..3]beginFor i:=0 to RichEdit1.Lines.Count-1 dobeginMyLine:=Richedit1.Lines[i];num:=GetSubStrNum(myline,SepChar);for j:=1 to num doitem[j]:=GetSubStr(myline,SepChar);table1.with table1 dobegintable1.table1name.Asstring:=item[1];table1age.Asinteger:=strtoint(item[2]);table1title.Asstring:=item[3];table1.table1.
Delphi与Word之间的融合技术()一、VBA代码含义Microsoft Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处理系统,它集成了Microsoft Visual Basic,可以通过编程来实现对Word功能的扩展。Microsoft Visual Basic在word中的代码即Word的宏,通过编写Word宏,可实现一些文档处理的自动化,如实现文档的自动备份、存盘等,可扩展Word文档的功能,因此,能够充分利用Word的特性,甚至使Word成为自己软件的一部分。Word的宏既有有利的一部分,因为它能够帮助我们实现文档的自动化,但是Word的宏也不是纯粹的有利,有时它可能危害我们的文档、计算机系统甚至网络,从最开始的Taiwan NO1宏病毒到现在的Melissa宏病毒,从最开始的简单的提示,耗尽系统资源到现在的乱发电子邮件,将个人的信息发送到网络上,甚至向硬盘的Autoexec.bat(自动批处理文件)中添加Deltree C: -y,破坏整个Windows系统。二、Word中内嵌的Com技术可以说Word是对Com技术支持最好的软件,这样说似乎是太极端了一点,但是Word提供的强大的编程接口技术却能够是我们通过程序控制Word的任何一部分。无论是文件的打开、存盘、打印还是文档中表格的自动绘制。通过编程软件,可以灵活的操纵word,这里只以Borland Delphi为例,进行详细描述:1、
在Delphi中调用Word软件/文件的方法在Word中调用Word软件,归纳起来有三种方法:。通过Delphi的控件TOleContainer 将Word嵌入a.使用Delphi提供的Servers控件调用Word,使用Word的属性b.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中,利用Com技术编程c.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。2、
对几种方法的难易程度的判别a.通过Delphi的控件TOleContainer 将Word嵌入这是最简单的Ole嵌入,能够直接将Word文档调用,只需要使用ToleContainer.Run就可以将Word文档直接启动。且这样启动的Word文档与Delphi程序是一个整体(从界面上看),但是它存在不可克服的缺点,即不能通过Delphi控制Word文档,也就不能实现将灵活操纵Word的目的。b.使用Delphi提供的Servers控件调用Word,使用Word的属性使用Delphi的Servers控件来操纵Word,在编程时Delphi能够实现代码提示,总体上看能够较好的实现Delphi对Word的控制,但是还有一些Word的功能不能在Delphi中调用(比如自己编写的VBA宏代码)。且实现功能时本来在VBA代码中可选则参数在Delphi调用的时候必须添加,否则,连编译都不能通过。本方式启动的Word与Delphi程序分属两个窗体。此办法仅能作为一个参考。c.通过真正的Com技术,将Office软件目录中文件MSWORD9.OLB中的类库全部导入Delphi中,利用Com技术编程利用真正的Com技术,将MsWord9.OLD文件类库导入,然后利用Com技术进行使用。整体上类似使用Delphi的Servers控件,稍微比Servers控件麻烦,优缺点与Servers控件相同。d.使用CreateOleObject将启动Word,然后以Ole方式对Word进行控制。本办法是使用以CreateOleObjects方式调用Word,实际上还是Ole,但是这种方式能够真正做到完全控制Word文件,能够使用Word的所有属性,包括自己编写的VBA宏代码。与Servers控件和com技术相比,本方法能够真正地使用Word的各种属性,和在VBA中编写自己的代码基本一样,可以缺省的代码也不需要使用。本方式启动的Word与Delphi程序分属两个窗体。缺点是使用本方法没有Delphi代码提示,所有异常处理均需要自己编写,可能编写时探索性知识比较多。三、Word宏编辑器Word能够真正地进行VBA代码的编辑,可以编写窗体、函数。进入Word宏编辑器的方法:工具-&宏-&Visual Basic编辑器,可进入Visual Basic编辑器界面。Word的Visual Basic编辑器界面和真正的Visual Basic编辑器基本相同,在此不再向详述。在VBA代码中,可以添加用户窗体、模块、类模块。用户窗体、模块、类模块的概念和Visual Basic完全相同。注释也与Visual Basic完全相同。可以将光标停留在窗体、模块的任何一个子程序上,直接按“F5”运行当前子程序。四、Word的宏的概述Word充分地将文档编辑和VB结合起来,真正地实现文档的自动化。使用Word编程,类似于使用Visual Basic,所不同的是,在Word中,能够直接运行某一个子程序,直接看见结果,Word的宏,只能解释运行,而Visual Basic,现在已经能够编写成真正的机器码,从代码的保护上来说,应该尽可能地减少Word的VBA代码数量,尤其是关键的代码。VBA宏,可分成四种:1、
和命令名相同的宏如FileSave,FileOpen,如果在VBA代码中包含与Word同名的函数,则直接执行这些VBA代码,忽略Word本身的命令。2、
Word内特定的宏这些宏包含AutoExec(启动 Word 或加载全局模板)、AutoNew(每次新建文档时)、AutoOpen(每次打开已有文档时)、AutoClose(每次关闭文档时),AutoExit(退出 Word 或卸载全局模板时)。如果VBA代码中含有这些名称的函数,则满足相应的条件,相应代码就自动执行。3、
相应事件的VBA宏这些宏是由事件触发的宏,如Document_Close在文档关闭的时候触发事件,Document_New在新建文档的时候触发,Document_Open在打开文档的时候触发。4、
独立的宏自己编写的VBA代码,即不属于上面几种情况的VBA代码,可以被其他VBA代码调用,更重要的是,可以被其他程序调用。这样,我们就可以屏弃Word自动执行的宏,通过Delphi直接调用相应宏来达到目的。五、Word命令宏的详细描述Word本身的命令函数包含很多,但是无论是word联机帮助还是MSDN帮助,都没有这方面的介绍,因此只能凭自己的实验取探索,初步探测的函数如下:宏名
注释FileNew 新建
FileNewDefault
新建空白文档
FileSaveAs
FilePrintPreview
ToolsCustomize
工具栏里面的自定义
ToolsOptions
ToolsRevisions
突出显示修订
ToolsReviewRevisions
接受或拒绝修订
ToolsRevisionMarksAccept
ToolsRevisionMarksReject
ToolsRevisionMarksToggle
ToolsMacro
ToolsRecordMacroToggle
ViewSecurity
ViewVBCode
查看VB编辑器环境
FileTemplates
模板和可加载项
ToolsProtectUnprotectDocument
解除对文档的保护
InsertHyperlink 插入超级链接
EditHyperlink
编辑超级链接
DeleteHyperlink 删除超级链接
查看、删除链接
EditPasteAsHyperlink
粘贴超级链接
FormatStyle
EditBookMark
delphi6下编写需要认证的发送邮件程序(比如263)最近在delphi5下编写一个数据库的程序,其中有一个功能就是能够自己发送email,本来我想偷懒让sql server自己发送,看了半天联机帮助不知所以然,于是发狠上网去找控件乐,(delphi5自带的不支持认证)找到一套叫做indy的控件,可以发送需要SMTP认证的邮件,我把控件导入delphi5,就去喝可乐乐,呵呵,回来迷茫的看着机器,突然发现,这几个控件好面熟,噢,呵呵,原来是delphi6里面的东东哦,(台下观众开始毫不留情的扔石头了)现在我就贴出来,大家看看,嘻嘻首先 在indy clients 页上 摘取一个TidSMTP控件(就是那个蓝颜色的柜子啦)然后 在indy misc
页上 摘取一个TIdMessage控件(象一个信笺的东东)呵呵,我们给他们取名为SMTP和IdMsgSend然后开始自己的如下代码procedure Tform1.SendAlarmEbeginif SMTPAuthority then
//SMTPAuthority 是 表示这个SMTP服务器是否需要认证的boolean
SMTP.AuthenticationType := atLogin
SMTP.AuthenticationType := atNSMTP.UserID := myzerg@263.//帐户SMTP.Password := **********;//密码{General setup}SMTP.Host := SMTP.263.SMTP.Port := 25;
Showmessage('连接SMTP服务器失败!');
with IdMsgSend do
Body.Add('hello world');//内容
From.Text := '';
Recipients.EMailAddresses :='zyx_'//收件人
Subject:='老友,哈喽'//主题
SMTP.Send(IdMsgSend);
SMTP.D因为是从代码里面改来的,(因为源码里面还有别的功能),原理就是这样了其他的功能( 附件,转交,信件的格式mime等等都可以设置的)
Delphi代码创建形式规范 1.0Bear, 本规范的目的:给自己的代码一个统一而标准的外观,增强
可读性,可理解性,可维护性本规范的原则:名称反映含义,形式反映结构1、单元风格2、各区风格3、语句风格4、命名规则参考:Borland官方Object Pascal风格指南
Delphi5程序员指南编码标准
1、单元风格 {*******************************************************}{ }{ 项目名称 }{ }{ 版权所有 (C)
公司名称 }{ }{*******************************************************}unit UnitN{*******************************************************项目:模块:描述:版本:日期:作者:更新:TODO:*******************************************************}interfaceuses
----,----,----,----,----,----,----,----,----,----,----,
----,----, ----,----,----,----;const
--------------------;
--------------------;
--------------------;
--------------------;
--------------------;
--------------------;
--------------------;
--------------------;
--------------------;var
--------------------;
--------------------;
--------------------;implementationuses
----,----,----,----;{$R *.RES}{$R *.DFM}--------------------------------;--------------------------------;--------------------------------;--------------------------------;--------------------------------;--------------------------------;--------------------------------;--------------------------------;--------------------------------;--------------------------------;--------------------------------;--------------------------------;end.返回
2、各区风格0、注释与空白
用{ } 不用 //
主题注释,函数过程目的说明,语句注释
空行 :版权块,类之间,方法之间--(两行) 方法内部块(一行)
空格 :用以增强清晰度
缩进 :两个空格1、常量区基本:Const
----- = ----;
----- = ----;
----- = ----;
----- = ----;扩展前缀: 少则C_---;多则可以每个主题有一个前缀Const
C_--- = ----; { 含义 }
C_--- = ----; { 含义 }
C_--- = ----; { 含义 }
C_--- = ----; { 含义 }
----- = ----;
----- = ----;
----- = ----;
----- = ----;资源字符串,放在变量区后面resourcestringconst
S_--- = '----';
S_--- = '----';
S_--- = '----';例子:
CM_BASE = $B000;
CM_ACTIVATE = CM_BASE + 0;
CM_DEACTIVATE = CM_BASE + 1;
CM_GOTFOCUS = CM_BASE + 2;
CM_LOSTFOCUS = CM_BASE + 3;
NumPaletteEntries = 20;
BoxPoints : array[0..5, 0..2] of GLfloat =
( (-1, 0, 0),
( 0, 1, 0),
( 1, 0, 0),
( 0, -1, 0),
( 0, 0, 1),
( 0, 0, -1) );
{ Variant type codes (wtypes.h) }
varEmpty = $0000; { vt_empty }
varNull = $0001; { vt_null }
varSmallint = $0002; { vt_i2 }
GIFVersions : array[gv87a..gv89a] of TGIFVersionRec = ('87a', '89a');
数据类型--&不提供服务的数据类型
T---- = ---------
对象类型--&有状态并提供服务的实体
T---- = class(----)
按字母排序Private
1、所有数据放在Private 区,以F打头
2、所有事件属性对应的方法指针放在Private 区,以F打头
3、属性的Get与Set方法放在Private 区--&不准备被继承
4、响应消息的方法放在Private 区protected
1、被子类调用的但不能被外界调用的方法与属性
2、供子类重载的方法 abstractpublic
1、构建析构方法
2、供外界调用的方法
3、供外界调用的属性published
1、出现在Object Inspector里供设计时用的属性
2、出现在Object Inspector里供设计时用的事件响应例子:
TGIFVersion = (gvUnknown, gv87a, gv89a);
TGIFVersionRec = array[0..2]
PInterfaceTable = ^TInterfaceT
TInterfaceTable = packed record
EntryCount: I
Entries: array[0..9999] of TInterfaceE
{ forword declairation } TGIFImage =
TGIFSubImage =
{---------------------------
---------------------------}
TGIFItem = class(TPersistent)
FGIFImage: TGIFI
.............3、变量区 定义全局变量 注意不要有缺省的类对象变量,在调用者中声明! var -----------: -------; -----------: -------; 例子: GIFDelayExp: integer = 10; { Delay multiplier in mS.} GIFDelayExp: integer = 12;4、实现区{---------------------------------------------------------
主题----------------------------------------------------------}{ 方法的目的 }procedure ----------------------------begin
--------;{ 方法的目的 }function -----------------------------begin
--------;5、过程与函数
返回3、语句风格1、简单语句
-------;2、复合语句
-----;3、赋值语句
-- := -------;
-- := (-- + --)* (-- / --);4、局部变量var
---: ---;对于逻辑上并列的变量组:var
---: ---;5、数组声明
--- = array [*..*] of ---;6、if 语句
if (--------) then
-------------;
if (--------) then
-------------;
-------------;
-------------;
if (--------) then
-------------;
-------------;
if (--------) then
-------------;
-------------;
-------------;
-------------;
if (--------) then
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;
if (--------) then
-------------
else if (--------) then
-------------;7、for 循环
for I := -------- to -------- do
-------------;
for I := -------- to -------- do
-------------;
-------------;
-------------;
for I := -------- to -------- do
if (--------) then
-------------;
-------------;
-------------;
for I := -------- to -------- do
with -------- then
-------------;
-------------;
-------------;8、while 循环
while ------ do
-------------;
-------------;
-------------;9、repeat 循环
-------------;
-------------;
-------------;
until ------;10、case 语句
case -------- of
-------- : -------------;
-------- : -------------;
-------- : -------------;
else -------------;
case -------- of
-------- :
-----------------------------------------------------------------;
-------- :
-----------------------------------------------------------------;
-------- :
-----------------------------------------------------------------;
-----------------------------------------------------------------;
case -------- of
-------- : begin
--------------------------;
--------------------------;
--------------------------;
-------- : begin
--------------------------;
--------------------------;
--------------------------;
-------- : begin
--------------------------;
--------------------------;
--------------------------;
else begin
-------------;
-------------;
-------------;
11、with 语句
with -------- do
-------------;
with -------- do
-------------;
-------------;
-------------;12、try 语句
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;
-------------;13、其它
运算:运算符前后要有空格
w1[n] := ((i + 1) * v0[n] + j * v1[n] + (k - 1) * v2[n]) /
-- := --; 赋值
--: ----; 类型
同一类型且含义逻辑上不并列的变量 20个字符长的变量名
------- : -------;
------- : -------;
------- : -------;
------- : -------;
------- : -------;
------- : -------;
------- : -------;
------- : -------;
------- : -------;
------- : -------;
function ---------------------(--: ----; --: ----; --: ----): ----;
同一类型且含义逻辑上并列的变量 如 Error0,Error1,Error2 ; R,G,B
------- : -------
------- : -------
function ---------------------(--, --, --: ----; var --, --, --: ----): ----;
T------- = class(-------)
F-------: -------;
F-------: -------;
F-------: -------;
function --------------: -------;
procedure --------------;
function --------------: -------;
procedure --------------;
function --------------: -------;
constructor Create(-------: -------); {if need to do something after Create}
destructor D {if need to do something before Destroy}
function --------------: -------;
procedure --------------;
property -------: ------- read F-------;
published14、形式反映结构
TetIndex : array[0..3] of TInteger3v =
( (0, 1, 3),
(2, 1, 0),
(3, 2, 0),
(1, 2, 3) );
Cursors: array[0..4] of TIdentMapEntry = (
(Value: crD Name: 'crDefault'),
(Value: crA Name: 'crArrow'),
(Value: crC Name: 'crCross'),
(Value: crIB Name: 'crIBeam') );
if (dwFlags and PFD_DRAW_TO_WINDOW) = 0)
or( (dwFlags and PFD_SUPPORT_OPENGL) = 0)
or( (dwFlags and PFD_DOUBLEBUFFER) = 0)
or (iPixelType && PFD_TYPE_RGBA)
or (cColorBits & 16)
raise Exception.Create('Inappropriate Pixel Format chosen.');
glBegin(shadeType);
glNormal3fv(@n0);
glVertex3fv(@dodec[a, 0]);
glVertex3fv(@dodec[b, 0]);
glVertex3fv(@dodec[c, 0]);
glVertex3fv(@dodec[d, 0]);
glVertex3fv(@dodec[e, 0]);
dodec[0, 0] := - dodec[0, 1] := 0; dodec[0, 2] :=
dodec[1, 0] := dodec[1, 1] := 0; dodec[1, 2] :=
dodec[2, 0] := -1; dodec[2, 1] := -1; dodec[2, 2] := -1;procedure glutWireTorus(
innerRadius : GL //---------
outerRadius : GL //---------
nsides : GL //---------
rings : GLint ); //---------
case FRunDirection of
rdRightToLeft : begin
StX:=Width - CurrentS
rdLeftToRight : begin
StX:=-CurrentS
rdBottomToTop : begin
StY:=Height - CurrentS
rdTopToBottom : begin
StY:=CurrentStep - RTH
else begin
case (DitherMode) of
dmNearest:
Ditherer := TDitherEngine.Create(Bitmap.Width, ColorLookup);
dmFloydSteinberg:
Ditherer := TFloydSteinbergDitherer.Create(Bitmap.Width, ColorLookup);
Ditherer := TStuckiDitherer.Create(Bitmap.Width, ColorLookup);
Ditherer := TSierraDitherer.Create(Bitmap.Width, ColorLookup);
Ditherer := TJaJuNIDitherer.Create(Bitmap.Width, ColorLookup);
dmSteveArche:
Ditherer := TSteveArcheDitherer.Create(Bitmap.Width, ColorLookup);
Ditherer := TBurkesDitherer.Create(Bitmap.Width, ColorLookup);
else返回4、命名规则
1、文件名称: u模块名称;见名知意
2、控件名称: 功能_控件缩写;见名知意
3、变量 : 尽量不用缩写,尽量用名词;见名知意
4、方法与过程:尽量不用缩写,尽量用动宾词组;见名知意 5、常见的惯例
类名以T打头 (Type之意)
类的私有数据域以F打头(Field之意)
对数据的存取操作分别以Set,Get打头
事件属性以On打头--End--
Delphi应用程序中保存状态信息的两种方法成都市电子科技大学96---- 许多For Windows的应用程序在一次运行结束时会自动保存此次运行的状态信息,这样做的好处是用户只要修改一次程序的运行状态,在下次启动此程序时,该程序会以上次运行的状态出现,用户可以按照自己的习惯来调整应用程序。---- 在Delphi中有两种方法可以实现这种功能:使用INI文件或使用注册表。下面将详细阐述这两种方法。---- 一、 使用INI文件保存状态信息---- Delphi中提供了TIniFile类,TIniFile类能够在INI文件中存取应用程序专用信息,我们可以用它来处理INI文件。注意使用时将IniFiles单元加入uses列表中。---- 使用INI文件存取应用程序专用信息是Windows 3.x中的标准方法。INI文件中的信息储存是分段的,每个段由一个括在方括号中的名称说明,比如WIN.INI中就包括[Desktop]等段。每个段中又由一些键值组成,这些键值的格式是:& keyname &=& value &,共有三种类型:字符串、整型和布尔型,每种类型有两种方法可以读写:ReadBool,WriteBool,ReadInteger,WriteInteger,ReadString,WriteString。下面就一个例子来说明它们的用法:---- 1.建立INI文件
TForm1.FormCreate(Sender:Tobject);
{如INI文件不存在,建立INI文件;
否则,从INI文件中读取数据}
var   status:
inifile:TIniF
filename:S
filename:=extractfilepath
(application.exename)+'iniexample.ini';
inifiel:=Tinifile.create(filename);
status:=inifile.readinteger
('MainForm','Status',0);
if status& &0 then
//INI文件存在,读状态信息
case status of
top:=inifiel.readinteger
('MainForm','Top',top);
left:=100;     
3: windowstate:= 2.保存状态
TForm1.FormDestroy
(Sender:Tobject);
case windowstate of
wsnormal: begin
inifile.writeinteger
('MainForm', 'Top',top);
//保存状态信息          
wsminimized: status:=2;
wsmaximized: status:=3;
inifile.writeinteger('MainForm',
'Status',status);
inifile. 上述程序运行之后,生成的iniexample.ini文件格式如下:   [MainForm]
Status=1---- 二、 使用注册表保存状态信息---- INI文件只是为了兼容以前的应用程序而存在,Windows 95/NT使用系统注册表来代替INI文件,所有For Windows 95/NT的应用软件都应该使用注册表来保存状态,这也是MicroSoft推荐的作法。Delphi提供了两个类来处理注册表。Tregistry类封装了系统注册表。而TRegIniFile类不但封装了注册表,还提供了一条简单的途径使现有的Windows 3.1应用软件升级到Windows 95/NT。TRegIniFile类提供了TIniFile类的接口,但没有使用文件,而是将数据保存在注册表中。文件名作为一个主键,默认建立在HKEY_CURRENT_USER下。相应的,INI文件中的段名作为一个键建立,段中的各项数据就变为这个键下边的各项数值。仍以上面的例子为例,如果使用TRegIniFile类,只需改动三处:---- 1.在uses列表中用registry单元代替IniFiles单元---- 2.用TRegIniFile类代替TIniFile类---- 3.将inifiel:=Tinifile.create(filename);改为Inifile:=TRegIniFile.Create(Filename);
abort 函数 引起放弃的意外处理 abs 函数 绝对值函数 addexitproc 函数 将一过程添加到运行时库的结束过程表中 addr 函数 返回指定对象的地址 adjustlinebreaks 函数 将给定字符串的行分隔符调整为cr/lf序列 align 属性 使控件位于窗口某部分 alignment 属性 控件标签的文字位置 allocmem 函数 在堆栈上分配给定大小的块 allowgrayed 属性 允许一个灰度选择 ansicomparestr 函数 比较字符串(区分大小写) ansicomparetext 函数 比较字符串(不区分大小写) ansilowercase 函数 将字符转换为小写 ansiuppercase 函数 将字符转换为大写 append 函数 以附加的方式打开已有的文件 arctan 函数 余切函数 assignfile 函数 给文件变量赋一外部文件名 assigned 函数 测试函数或过程变量是否为空 autosize 属性 自动控制标签的大小 backgrounddi2001.jpg 属性 背景色 beginthread 函数 以适当的方式建立用于内存管理的线程 bevelinner 属性 控件方框的内框方式 bevelouter 属性 控件方框的外框方式 bevelwidth 属性 控件方框的外框宽度 blockread 函数 读一个或多个记录到变量中 blockwrite 函数 从变量中写一个或多个记录 borderstyle 属性 边界类型 borderwidth 属性 边界宽度 break 命令 终止for、while、repeat循环语句 brush 属性 画刷 caption 属性 标签文字的内容 changefileext 函数 改变文件的后缀 chdir 函数 改变当前目录 checked 属性 确定复选框选中状态 chr 函数 返回指定序数的字符 closefile 命令 关闭打开的文件 color 属性 标签的颜色 columns 属性 显示的列数 comparestr 函数 比较字符串(区分大小写) concat 函数 合并字符串 continue 命令 继续for、while、repeat的下一个循环 copy 函数 返回一字符串的子串 cos 函数 余弦函数 ctl3d 属性 是否具有3d效果 cursor 属性 鼠标指针移入后的形状 date 函数 返回当前的日期 datetimetofiledate 函数 将delphi的日期格式转换为dos的日期格式 datetimetostr 函数 将日期时间格式转换为字符串 datetimetostring 函数 将日期时间格式转换为字符串 datetostr 函数 将日期格式转换为字符串 dayofweek 函数 返回星期的数值 dec 函数 递减变量值 decodedate 函数 将日期格式分解为年月日 decodetime 函数 将时间格式分解为时、分、秒、毫秒 delete 函数 从字符串中删除子串 deletefile 命令 删除文件 diskfree 函数 返回剩余磁盘空间的大小 disksize 函数 返回指定磁盘的容量 dispose 函数 释放动态变量所占的空间 disposestr 函数 释放字符串在堆栈中的内存空间 ditherbackgrounddi2001.jpg?使背景色的色彩加重或减少50% dragcursor 属性 当鼠标按下时光标的形状 dragmode 属性 按动的作用方式 dropdowncount 属性 容许的显示数据项的数目 editmask 属性 编辑模式 enabled 属性 是否使标签呈现打开状态 encodedate 函数 将年月日合成为日期格式 encodetime 函数 将时、分、秒、毫秒合成为时间格式 endmargin 属性 末尾边缘 eof 函数 对有类型或无类型文件测试是否到文件尾 eoln 函数 返回文本文件的行结束状态 erase 命令 删除外部文件 exceptaddr 函数 返回引起当前意外的地址 exclude 函数 从集合中删除一些元素 exceptobject 函数 返回当前意外的索引 exit 命令 立即从当前的语句块中退出 exp 函数 指数函数 expandfilename 函数 返回包含绝对路径的字符串 extendedselect 属性 是否允许存在选择模式,true时,multiselect才有意义 extractfiledir 函数 返回驱动器和路径 extractfileext 函数 返回文件的后缀 extractfilename 函数 返回文件名 extractfilepath 函数 返回指定文件的路径 fileage 函数 返回文件已存在的时间 fileclose 命令 关闭指定的文件 filecreate 命令 用指定的文件名建立新文件 filedatetodatetime 函数 将dos的日期格式转换为delphi的日期格式 fileexists 函数 检查文件是否存在 filegatattr 函数 返回文件的属性 filegetdate 函数 返回文件的dos日期时间标记 fileopen 命令 用指定的存取模式打开指定的文件 filepos 函数 返回文件的当前指针位置 fileread 命令 从指定的文件读取 filesearch 命令 在目录中搜索指定的文件 fileseek 函数 改变文件的指针 filesetattr 函数 设置文件属性 filesetdate 函数 设置文件的dos日期时间标记 filesize 函数 返回当前文件的大小 filewrite 函数 对指定的文件做写操作 fillchar 函数 用指定的值填充连续字节的数 findclose 命令 终止findfirst/findnext序列 findfirst 命令 对指定的文件名及属性搜索目录 findnext 命令 返回与文件名及属性匹配的下一入口 floattodecimal 函数 将浮点数转换为十进制数 floattostrf 函数 将浮点数转换为字符串 floattostr 函数 将浮点数转换为字符串 floattotext 函数 将给定的浮点数转换为十进制数 floattotextfmt 函数 将给定的浮点数转换为十进制数 flush 函数 将缓冲区的内容刷新到输出的文本文件中 fmtloadstr 函数 从程序的资源字符串表中装载字符串 fmtstr 函数 格式化一系列的参数,其结果以参数result返回 font 属性 设置字体 format 函数 格式化一系列的参数并返回pascal字符串 formatbuf 函数 格式化一系列的参数 formatdatetime 函数 用指定的格式来格式化日期和时间 formatfloat 函数 指定浮点数格式 frac 函数 返回参数的小数部分 freemem 函数 按给定大小释放动态变量所占的空间 getdir 返回指定驱动器的当前目录 getheapstatus 返回内存管理器的当前状态 getmem 建立一指定大小的动态变量,并将指针指向该处 getmemorymanager 返回内存管理器的入口点 glyph 函数 按钮上的图象 halt 停止程序的执行并返回到操作系统 hi 返回参数的高地址位 high 返回参数的上限值 hint 属性 提示信息 int 返回参数的整数部分 include 添加元素到集合中 insert 在字符串中插入子串 inttohex 将整型数转换为十六进制数 inttostr 将整型数转换为字符串 ioresult 返回最新的i/o操作完成状态 isvalidident 测试字符串是否为有效的标识符 items 属性 默认显示的节点 kind 属性 摆放样式largechange 属性 最大改变值 layout 属性 图象布局 length 函数 返回字符串的??ざ?lines 属性 缺省显示内容 ln 函数 自然对数函数 lo 函数 返回参数的低地址位 loadstr 函数 从应用程序的可执行文件中装载字符资源 lowercase 函数 将给定的字符串变为小写 low 函数 返回参数的下限值 max 属性 最大值 maxlength 属性 最大长度 min 属性 最小值 mkdir 命令 建立一子目录 move 函数 从源到目标复制字节 multiselect 属性 允许同时选择几个数据项 name 属性 控件的名字 new 函数 建立新的动态变量并设置一指针变量指向他 newstr 函数 在堆栈上分配新的字符串 now 函数 返回当前的日期和时间 odd 测试参数是否为奇数 onactivate 事件 焦点移到窗体上时触发 onclick 事件 单击窗体空白区域触发 ondblclick 事件 双击窗体空白区域触发 onclosequery 事件 使用者试图关闭窗体触发 onclose 事件 窗体关闭后才触发 oncreate 事件 窗体第一次创建时触发 ondeactivate 事件 用户切换到另一应用程序触发 ondragdrop 事件 鼠标拖放操作结束时触发 ondragover 事件 有其他控件从他上面移过触发 onmousedown 事件 按下鼠标键时触发 onmouseup 事件 释放鼠标键时触发 onmousemove 事件 移动鼠标时触发 onhide 事件 隐藏窗体时触发 onkeydown 事件 按下键盘某键时触发 onkeypress 事件 按下键盘上的单个字符键时触发 onkeyup 事件 释放键盘上的某键时触发 onpaint 事件 窗体上有新部分暴露出来触发 onresize 事件 重新调整窗体大小触发 onshow 事件 在窗体实际显示之前瞬间触发 ord 返回序数类的序数 outlinestyle 属性 类型 outofmemoryerror 引起outofmemory意外 pageindex 属性 页索引 pages 属性 页 paramcount 函数 返回在命令行上传递给程序的参数数量 paramstr 函数 返回指定的命令行参数 pen 属性 画刷设置 pi 函数 返回圆周率pi picture 属性 显示图象 pictureclosed 属性 设置closed位图 pictureleaf 属性 设置leaf位图 pictureminus 属性 设置minus位图 pictureopen 属性 设置open位图 pictureplus 属性 设置plus位图 pos 函数 在字符串中搜索子串 pred 函数 返回先前的参数 random 函数 返回一随机函数 randomize 函数 用一随机数初始化内置的随机数生成器 read 函数 对有格式的文件,读一文件组件到变量中;对文本文件,读一个或多个值到一个或多个变量中 readln 函数 执行read过程,然后跳到文件下一行 readonly 属性 只读属性 reallocmem 函数 分配一动态变量 rename 函数 重命名外部文件 renamefile 函数 对文件重命名 reset 函数 打开已有的文件 rewrite 函数 建立并打开一新的文件 rmdir 函数 删除空的子目录 round 函数 将实数值舍入为整型值 runerror 函数 停止程序的执行 scrollbars 属性 滚动条状态 seek 函数 将文件的鼻爸刚胍贫?街付ǖ淖榧??seekeof 函数 返回文件的文件结束状态 seekeoln 函数 返回文件的行结束状态 selectedcolor 属性 选中颜色 setmemorymanager 函数 设置内存管理器的入口点 settextbuf 函数 给文本文件指定i/o缓冲区 shape 属性 显示的形状 showexception 函数 显示意外消息与地址 sin 函数 正弦函数 sizeof 函数 返回参数所占的字节数 smallchange 属性 最小改变值 sorted 属性 是否允许排序 sqr 函数 平方函数 sqrt 函数 平方根函数 startmargin 属性 开始边缘 state 属性 控件当前状态 str 函数 将数值转换为字符串stralloc 函数 给以null结束的字符串分配最大长度-1的缓冲区 strbufsize 函数 返回存储在由stralloc分配的字符缓冲区的最大字符数 strcat 函数 将一字符串附加到另一字符串尾并返回合并的字符串 strcomp 函数 比较两个字符串 strcopy 函数 将一个字符串复制到另一个字符串中 strdispose 函数 释放堆栈上的字符串 strecopy 函数 将一字符串复制到另一个字符串并返回结果字符串尾部的指针 strend 函数 返回指向字符串尾部的指针 stretch 属性 自动适应控件的大小 strfmt 函数 格式化一系列的参数 stricomp 函数 比较两个字符串(不区分大小写) stringtowidechar 函数 将ansi字符串转换为unicode字符串 strlcat 函数 将一字符串中的字符附加到另一字符串尾并返回合并的字符串 strlcomp 函数 以最大长度比较两个字符串 strlcopy 函数 将一个字符串中的字符复制到另一个字符串中 strlen 函数 返回字符串中的字符数 strlfmt 函数 格式化一系列的参数,其结果中包含有指向目标缓冲区的指针 strlicomp 函数 以最大长度比较两个字符串(不区分大小写) strlower 函数 将字符串中的字符转换为小写 strmove 函数 将一个字符串中的字符复制到另一个字符串中 strnew 函数 在堆栈上分配一个字符串 strpas 函数 将以null结束的字符串转换为pascal类的字符串 strpcopy 函数 将pascal类的字符串复制为以null结束的字符串 strplcopy 函数 从pascal类的最大长度字符串复制为以null结束的字符串 strpos 函数 返回一个字符串在另一个字符串中首次出现指针 strrscan 函数 返回字符串中最后出现字符的指针 strscan 函数 返回字符串中出现首字符的指针 strtodate 函数 将字符串转换为日期格式 strtodatetime 函数 将字符串转换为日期/时间格式 strtofloat 函数 将给定的字符串转换为浮点数 strtoint 函数 将字符串转换为整型 strtointdef 函数 将字符串转换为整型或默认值 strtotime 函数 将字符串转换为时间格式 strupper 函数 将字符串中的字符转换为大写 style 属性 类型选择 suce 函数 返回后继牟问?swap 函数 交换参数的高低地址位 tabs 属性 标记每一项的内容 tabindex 属性 标记索引 text 属性 显示的文本 texttofloat 函数 将字符串(以null结束的格式)转换为浮点数 time 函数 返回当前的时间 timetostr 函数 将时间格式转换为字符串 trim 函数 从给定的字符串中删除前导和尾部的空格及控制字符 trimleft 函数 从给定的字符串中删除首部的空格及控制字符 trimright 函数 从给定的字符串中删除尾部的空格及控制字符 trunc 函数 将实型值截取为整型值 truncate 函数 截去当前文件位置后的内容 unselectedcolor 属性 未选中颜色 upcase 将字符转换为大写 uppercase 将给定的字符串变为大写 val 函数 将字符串转换为整型值 vararraycreate 函数 以给定的界限和维数建立变体数组 vararraydimcount 函数 返回给定变体的维数 vararrayhighbound 函数 返回给定变体数组维数的上界 vararraylock 函数 锁定给定的变体数组 vararraylowbound 函数 返回给定变体数组维数的下界 vararrayof 函数 返回指定变体的数组元素 vararrayredim 函数 通过改变上限来调整变体的大小 vararrayunlock 函数 解锁指定的变体数组 varastype 函数 将变体转换为指定的类型 varcase 函数 将变体转换为指定的类型并保存他 varclear 函数 清除指定的变体 varcopy 函数 将指定的变体复制为指定的变体 varformdatetime 函数 返回包含日期时间的变体 varisarray 函数 测试变体是否为数组 varisempty 函数 测试变体是否为unassigned varisnull 函数 测试变体是否为null vartodatetime 函数 将给定的变体转换为日期时间 vartype 函数 将变体转换为指定的类型并保存他 visible 属性 控件的可见性 wantreturns 属性 为true时,按回车键产生一个回车符;为false时,按下ctrl+enter才产生回车符 write 命令 对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件中 writeln 命令 执行write过程,然后输出一行结束标志 widecharlentostring 函数 将ansi字符串转换为unicode字符串 widecharlentostrwar 函数 将unicode字符串转换为ansi字符串变量 widechartostring 函数 将unicode字符串转换为ansi字符串 widechartostrvar 函数 将unicode字符串转换为ansi字符串变量
TcustomLabel
Ancestor type
TURLLabel(
Ancestor type
constructor TUrlLabel.Create(AOwner:TComponent);
inherited Create(AOwner);
Cursor:=crHandP
Font.Style:= [fsUnderline];
inherited Create(AOwner);
Access Violent
Cursor:=crHandP
Font.Style:= [fsUnderline];
Cursor:=crHandP
Font.Style:= [fsUnderline];
Object Inspector
Object Inspector
Object Inspector
property Url: String read FUrl write FU
procedure C
procedure TUrlLabel.C
ShellExecute(Application.Handle, nil, PChar(Url), nil, nil,SW_NORMAL);
ShellExecute
ShellExecute
Windows, Messages, SysUtils, Classes, Controls, StdCtrls,Shellapi,
Graphics, F
TUrlLabel = class(TLabel)
FUrl:AnsiS
procedure C
constructor Create(AOwner:TComponent);
property Url:AnsiString read FUrl write FU
procedure R
implementation
constructor TUrlLabel.Create(AOwner:TComponent);
inherited Create(AOwner);
Cursor:=crHandP
Font.Style:=[fsUnderline];
procedure TUrlLabel.C
ShellExecute(Application.Handle, nil, PChar(Url), nil, nil,SW_NORMAL);
procedure R
RegisterComponents('Linco', [TUrlLabel]);//
Image Editor
UrlLabel.dcr
Image Editor,
Component Resource File(.dcr)
Width,Height
&Install Componet
Unit FilName
Package Editor
Package Editor
可以在tools/image
editor下实现。
共35页:&&&&&&19&&&&&&
311234567891011121314151617181920212223242526272829123456789101112
随笔 - 343
评论 - 158
阅读排行榜
评论排行榜}

我要回帖

更多关于 如何隐藏vba代码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信