关于UpperCase和AnsiUpperCase
- 格式:doc
- 大小:21.50 KB
- 文档页数:1
delphi 动态修改exe文件的图标unit ICOEXE;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ComCtrls, shellapi;typeTForm1 = class(TForm)Label1:TLabel;Edit1:TEdit;Label2:TLabel;Edit2:TEdit;Button1:TButton;Button2:TButton;OpenDialog1:TOpenDialog;OpenDialog2:TOpenDialog;StatusBar1:TStatusBar;procedure Button2Click(Sender:TObject);procedure Button1Click(Sender:TObject);private{ Private declarations }public{ Public declarations }end;varForm1:TForm1;implementation{$R *.dfm}procedureTForm1.Button2Click(Sender:TObject);beginClose;end;procedure TForm1.Button1Click(Sender:TObject);constreadlen = 10; //每次读取字节数,可改变icolen = 766; //32*32图标长度,根据研究前126为图标头,后640为图标数据vari, j, itemp, nPos:int64; // nPos为目的图标在目的文件的位置ci, cj:array[0..readlen - 1] of char;SourceFile, DestFile:string; //如果要把记事本图标换成瑞星杀毒软件图标bOK:boolean; //则SourceFile='C:\windows\notepad.exe',DestFile:='C:\Program Files\rising\rav\ravmon.exe'SourceIcon, DestIcon:TIcon;SIconStream, s, sDest:TMemoryStream;beginbOK := false;if OpenDialog1.Execute thenSourceFile := OpenDialog1.FileNameelseexit;if AnsiUpperCase(ExtractFileExt(SourceFile)) '.EXE' then beginShowMessage(AnsiUpperCase(ExtractFileExt(SourceFile))); exit;end;Edit1.Text := SourceFile;if OpenDialog2.Execute thenDestFile := OpenDialog2.FileNameelseexit;if AnsiUpperCase(ExtractFileExt(DestFile)) '.EXE' then exit;Edit2.Text := DestFile;SourceIcon := TIcon.Create;case ExtractIcon(handle, PChar(SourceFile), UINT(-1)) of 0:begin ShowMessage('源程序没有图标');exit;end;1:;elseShowMessage('源程序有多个图标,本程序选择第一个图标'); end;SourceIcon.Handle := ExtractIcon(handle, PChar(SourceFile), 0);//选择第一个图标DestIcon := TIcon.Create;//选择第N个图标为ExtractIcon(handle,PChar(Source file), N - 1)case ExtractIcon(handle, PChar(DestFile), UINT(-1)) of0:begin ShowMessage('目的程序没有图标');exit;end;1:;elseShowMessage('目的程序有多个图标,本程序选择第一个图标替换');end;DestIcon.Handle := ExtractIcon(handle, PChar(DestFile), 0); //选择第一个图标SIconStream := TMemoryStream.Create;DestIcon.SaveToStream(sIconStream);if sIconStream.size icolen thenShowMessage('SIcon.sizeicolen');SDest := TMemoryStream.Create;sDest.LoadFromFile(DestFile);i := 0;j := 0; //以下程序查找目的图标在目的程序中的位置while i < sDest.size dobeginitemp := i;j := 126;{ repeatSDest.Position:=i;sDest.read(ci,Readlen);SiconStream.Position:=j;SIconStream.Read(cj,Readlen);i:=i+Readlen;j:=j+Readlen;until (String(ci)=String(cj)) and (i<sDest.size) and (j<icolen);} ci := '';cj := '';while (string(ci) = string(cj)) and (i < SDest.size) and (j < icolen) dobegini := i + readlen;j := j + readlen;SDest.Position := i;SDest.read(ci, readlen);SiconStream.Position := j;SiconStream.Read(cj, readlen);end;if j < icolen theni := itemp + 1 //没找到elsebeginnPos := itemp; //找到bOK := true;break;end;end;if bOK = false thenexit; //目标文件二进制码中未找到图标SIconStream.Clear; //将源程序图标存入SourceIcon.SaveToStream(SIconStream);SIconStream.position : = 126;s := TMemoryStream.Create;sDest.Position := 0;s.CopyFrom(sDest, nPos); //将目的程序图标前数据拷入s.CopyFrom(SIconStream, 640); //将源程序图标拷入if sDest.size > sDest.Position + 640 then //将目的程序剩余数据拷入beginsDest.Position := sDest.Position + 640;s.CopyFrom(sDest, sDest.Size - sDest.Position);end;s.SaveToFile(Extractfilepath(application.exename) +'Result.exe');SourceIcon.Free;DestIcon.Free; //改造好的程序存放在本目录Result.exe文件中SIconStream.Free;s.Free;sDest.Free;ShowMessage(Extractfilepath(application.exename) +'Result.exe');end;//以上程序可以将目的程序的第一个图标换成源程序的第一个图标,经实证很多程序有二个//或更多图标,转换原理相似,不在陈述end.。
白皮書Delphi 及 Unicode作者:Marco Cantù2008 年 11 月公司總部 100 California Street, 12th Floor San Francisco, California 94111EMEA 總部 York House 18 York Road Maidenhead, Berkshire SL6 1SF, United Kingdom亞太地區總部 L7.313 La Trobe Street Melbourne VIC 3000 Australia簡介:DELPHI 2009 及 UNICODEDelphi 2009 的 其 中 一 項 最 相 關 新 功 能 是 Unicode 字元集的完整支援。
特別針對英文及 26 個字 母字元撰寫的 Delphi 應用程式適用於 Delphi 2009,針對全球其他語文撰寫的應用程式將因此一變 革而受惠。
對於以西歐或南美洲語文撰寫用於特定地區設定的應用程式確實如此,對於以全世界其他語文撰 寫的應用程式也有極大的助益。
即使以英文撰寫應用程式,也可以考慮能夠更方便進行翻譯及本 地化,而且,透過簡易、統一且好用的字元及,即可處理以任何語文撰寫的文字資料,包括資料 庫備忘錄欄位,這些語文包括 Unicode 支援的阿拉伯文、中文、日文及古斯拉夫文等世界各地語 文。
Windows 作業系統提供 API 層級的 Unicode 廣泛支援,而 Delphi 則填補空缺,並開啟銷售程式及 開發特定新應用程式的新市場。
本白皮書將說明一些新概念及注意事項,可預期的是,變革將帶來許多機會。
如果您需要提升相 容性,仍然可以保留一部分程式碼使用傳統的字串格式。
現在先不要談論過多的不同主題,先從 頭開始切入。
有一句話需要先提醒:Unicode 背後的概念以及 Delphi 2009 提 供 的 某 些 新 功 能 都 需 要 時 間 才 能 瞭 解 , 但是您可以先開始使用 2009,並且立即轉換現有的 Delphi 應用程 式,不需要等到完全瞭解才進行。
类型名称说明函数 Abort 引起放弃的意外处理函数 Abs 绝对值函数函数 AddExitProc 将一过程添加到运行时库的结束过程表中函数 Addr 返回指定对象的地址函数 AdjustLineBreaks 将给定字符串的行分隔符调整为CR/LF序列函数 AllocMem 在堆栈上分配给定大小的块函数 AnsiCompareStr 比较字符串(区分大小写)函数 AnsiCompareText 比较字符串(不区分大小写)函数 AnsiLowerCase 将字符转换为小写函数 AnsiUpperCase 将字符转换为大写函数 Append 以附加的方式打开已有的文件函数 ArcTan 余切函数函数 Assigned 测试函数或过程变量是否为空函数 AssignFile 给文件变量赋一外部文件名函数 BlockRead 读一个或多个记录到变量中函数 BlockWrite 从变量中写一个或多个记录函数 ChangeFileExt 改变文件的后缀函数 ChDir 改变当前目录函数 Chr 返回指定序数的字符函数 CompareStr 比较字符串(区分大小写)函数 Concat 合并字符串函数 Copy 返回一字符串的子串函数 Cos 余弦函数函数 Date 返回当前的日期函数 DateTimeToFileDate 将DELPHI的日期格式转换为DOS的日期格式函数 DateTimeToStr 将日期时间格式转换为字符串函数 DateTimeToString 将日期时间格式转换为字符串函数 DateToStr 将日期格式转换为字符串函数 DayOfWeek 返回星期的数值函数 Dec 递减变量值函数 DecodeDate 将日期格式分解为年月日函数 DecodeTime 将时间格式分解为时、分、秒、毫秒函数 Delete 从字符串中删除子串函数 DiskFree 返回剩余磁盘空间的大小函数 DiskSize 返回指定磁盘的容量函数 Dispose 释放动态变量所占的空间函数 DisposeStr 释放字符串在堆栈中的内存空间函数 EncodeDate 将年月日合成为日期格式函数 EncodeTime 将时、分、秒、毫秒合成为时间格式函数 Eof 对有类型或无类型文件测试是否到文件尾函数 Eoln 返回文本文件的行结束状态函数 ExceptAddr 返回引起当前意外的地址函数 ExceptObject 返回当前意外的索引函数 Exclude 从集合中删除一些元素函数 Exp 指数函数函数 ExpandFileName 返回包含绝对路径的字符串函数 ExtractFileDir 返回驱动器和路径函数 ExtractFileExt 返回文件的后缀函数 ExtractFileName 返回文件名函数 ExtractFilePath 返回指定文件的路径函数 FileAge 返回文件已存在的时间函数 FileDateToDateTime 将DOS的日期格式转换为DELPHI的日期格式函数 FileExists 检查文件是否存在函数 FileGatAttr 返回文件的属性函数 FileGetDate 返回文件的DOS日期时间标记函数 FilePos 返回文件的当前指针位置函数 FileSeek 改变文件的指针函数 FileSetAttr 设置文件属性函数 FileSetDate 设置文件的DOS日期时间标记函数 FileSize 返回当前文件的大小函数 FileWrite 对指定的文件做写操作函数 FillChar 用指定的值填充连续字节的数函数 FloatToDecimal 将浮点数转换为十进制数函数 FloatToStr 将浮点数转换为字符串函数 FloatToStrF 将浮点数转换为字符串函数 FloatToText 将给定的浮点数转换为十进制数函数 FloatToTextFmt 将给定的浮点数转换为十进制数函数 Flush 将缓冲区的内容刷新到输出的文本文件中函数 FmtLoadStr 从程序的资源字符串表中装载字符串函数 FmtStr 格式化一系列的参数,其结果以参数Result返回函数 Format 格式化一系列的参数并返回Pascal字符串函数 FormatBuf 格式化一系列的参数函数 FormatDateTime 用指定的格式来格式化日期和时间函数 FormatFloat 指定浮点数格式函数 Frac 返回参数的小数部分函数 FreeMem 按给定大小释放动态变量所占的空间函数 GetDir 返回指定驱动器的当前目录函数 GetHeapStatus 返回内存管理器的当前状态函数 GetMem 建立一指定大小的动态变量,并将指针指向该处函数 GetMemoryManager 返回内存管理器的入口点函数 Hi 返回参数的高地址位函数 High 返回参数的上限值函数 Include 添加元素到集合中函数 Insert 在字符串中插入子串函数 Int 返回参数的整数部分函数 IntToHex 将整型数转换为十六进制数函数 IntToStr 将整型数转换为字符串函数 IOResult 返回最新的I/O操作完成状态函数 IsValidIdent 测试字符串是否为有效的标识符函数 Length 返回字符串的动态长度函数 Ln 自然对数函数函数 Lo 返回参数的低地址位函数 LoadStr 从应用程序的可执行文件中装载字符资源函数 Low 返回参数的下限值函数 LowerCase 将给定的字符串变为小写函数 Move 从源到目标复制字节函数 New 建立新的动态变量并设置一指针变量指向他函数 NewStr 在堆栈上分配新的字符串函数 Now 返回当前的日期和时间函数 Odd 测试参数是否为奇数函数 Ord 返回序数类的序数函数 ParamCount 返回在命令行上传递给程序的参数数量函数 ParamStr 返回指定的命令行参数函数 Pi 返回圆周率Pi函数 Pos 在字符串中搜索子串函数 Pred 返回先前的参数函数 Random 返回一随机函数函数 Randomize 用一随机数初始化内置的随机数生成器函数 Read 对有格式的文件,读一文件组件到变量中;文本文件,读一个或多个值到一个或多个变量中函数 Readln 执行Read过程,然后跳到文件下一行函数 ReAllocMem 分配一动态变量函数 Rename 重命名外部文件函数 RenameFile 对文件重命名函数 Reset 打开已有的文件函数 Rewrite 建立并打开一新的文件函数 RmDir 删除空的子目录函数 Round 将实数值舍入为整型值函数 RunError 停止程序的执行函数 Seek 将文件的当前指针移动到指定的组件上函数 SeekEof 返回文件的文件结束状态函数 SeekEoln 返回文件的行结束状态函数 SetMemoryManager 设置内存管理器的入口点函数 SetTextBuf 给文本文件指定I/O缓冲区函数 ShowException 显示意外消息与地址函数 Sin 正弦函数函数 SizeOf 返回参数所占的字节数函数 Sqr 平方函数函数 Sqrt 平方根函数函数 Str 将数值转换为字符串函数 StrAlloc 给以NULL结束的字符串分配最大长度-1的缓冲区函数 StrBufSize 返回存储在由StrAlloc分配的字符缓冲区的最大字符数函数 StrCat 将一字符串附加到另一字符串尾并返回合并的字符串函数 StrComp 比较两个字符串函数 StrCopy 将一个字符串复制到另一个字符串中函数 StrDispose 释放堆栈上的字符串函数 StrECopy 将一字符串复制到另一个字符串并返回结果字符串尾部的指针函数 StrEnd 返回指向字符串尾部的指针函数 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 将字符串中的字符转换为大写函数 Suce 返回后继的参数函数 Swap 交换参数的高低地址位函数 TextToFloat 将字符串(以NULL结束的格式)转换为浮点数函数 Time 返回当前的时间函数 TimeToStr 将时间格式转换为字符串函数 Trim 从给定的字符串中删除前导和尾部的空格及控制字符函数 TrimLeft 从给定的字符串中删除首部的空格及控制字符函数 TrimRight 从给定的字符串中删除尾部的空格及控制字符函数 Trunc 将实型值截取为整型值函数 Truncate 截去当前文件位置后的内容函数 UpCase 将字符转换为大写函数 UpperCase 将给定的字符串变为大写函数 Val 将字符串转换为整型值函数 VarArrayCreate 以给定的界限和维数建立变体数组函数 VarArrayDimCount 返回给定变体的维数函数 VarArrayHighBound 返回给定变体数组维数的上界函数 VarArrayLock 锁定给定的变体数组函数 VarArrayLowBound 返回给定变体数组维数的下界函数 VarArrayOf 返回指定变体的数组元素函数 VarArrayRedim 通过改变上限来调整变体的大小函数 VarArrayUnlock 解锁指定的变体数组函数 VarAsType 将变体转换为指定的类型函数 VarCase 将变体转换为指定的类型并保存他函数 VarClear 清除指定的变体函数 VarCopy 将指定的变体复制为指定的变体函数 VarFormDateTime 返回包含日期时间的变体函数 VarIsArray 测试变体是否为数组函数 VarIsEmpty 测试变体是否为UNASSIGNED函数 VarIsNull 测试变体是否为NULL函数 VarToDateTime 将给定的变体转换为日期时间函数 VarType 将变体转换为指定的类型并保存他函数 WideCharLenToString 将ANSI字符串转换为UNICODE字符串函数 WideCharLenToStrWar 将UNICODE字符串转换为ANSI字符串变量函数 WideCharToString 将UNICODE字符串转换为ANSI字符串函数 WideCharToStrVar 将UNICODE字符串转换为ANSI字符串变量命令 Break 终止for、while、repeat循环语句命令 CloseFile 关闭打开的文件命令 Continue 继续for、while、repeat的下一个循环命令 DeleteFile 删除文件命令 Erase 删除外部文件命令 Exit 立即从当前的语句块中退出命令 FileClose 关闭指定的文件命令 FileCreate 用指定的文件名建立新文件命令 FileOpen 用指定的存取模式打开指定的文件命令 FileRead 从指定的文件读取命令 FileSearch 在目录中搜索指定的文件命令 FindClose 终止FindFirst/FindNext序列命令 FindFirst 对指定的文件名及属性搜索目录命令 FindNext 返回与文件名及属性匹配的下一入口命令 Halt 停止程序的执行并返回到操作系统命令 MkDir 建立一子目录命令 OutOfMemoryError 引起OutOfMemory意外命令 Write 对有格式的文件,写一变量到文件组件中;命令 Writeln 执行WRITE过程,然后输出一行结束标志事件 OnActivate 焦点移到窗体上时触发事件 OnClick 单击窗体或组件触发事件 OnClose 窗体关闭后才触发事件 OnCloseQuery 使用者试图关闭窗体触发事件 OnCreate 窗体第一次创建时触发事件 OnDblClick 双击窗体或组件触发事件 OnDragDrop 鼠标拖放操作结束时触发事件 OnDragOver 有其他控件从他上面移过触发事件 OnHide 隐藏窗体时触发事件 OnKeyDown 按下键盘某键时触发事件 OnKeyPress 按下键盘上的单个字符键时触发事件 OnKeyUp 释放键盘上的某键时触发事件 OnMouseDown 按下鼠标键时触发事件 OnMouseMove 移动鼠标时触发事件 OnMouseUp 释放鼠标键时触发事件 OnPaint 窗体上有新部分暴露出来触发事件 OnResize 重新调整窗体大小触发事件 OnShow 在窗体实际显示之前瞬间触发属性 Align 使控件位于窗口某部分属性 Alignment 控件标签的文字位置属性 AllowGrayed 允许一个灰度选择属性 AutoSize 自动控制标签的大小属性 BackgroundColor 背景色属性 BevelInner 控件方框的内框方式属性 BevelOuter 控件方框的外框方式属性 BevelWidth 控件方框的外框宽度属性 BorderStyle 边界类型属性 BorderWidth 边界宽度属性 Brush 画刷属性 Caption 标签文字的内容属性 Checked 确定复选框选中状态属性 Color 标签的颜色属性 Columns 显示的列数属性 Ctl3D 是否具有3D效果属性 Cursor 鼠标指针移入后的形状属性 DitherBackground 使背景色的色彩加重或减少50%属性 DragCursor 当鼠标按下时光标的形状属性 DragMode 按动的作用方式属性 DropDownCount 容许的显示数据项的数目属性 EditMask 编辑模式属性 Enabled 是否使标签呈现打开状态属性 EndMargin 末尾边缘属性 ExtendedSelect 是否允许存在选择模式,True时,MultiSelect才有意义属性 Font 设置字体属性 Glyph 按钮上的图象属性 Hint 提示信息属性 Items 默认显示的节点属性 Kind 摆放样式属性 LargeChange 最大改变值属性 Layout 图象布局属性 Lines 缺省显示内容属性 Max 最大值属性 MaxLength 最大长度属性 Min 最小值属性 MultiSelect 允许同时选择几个数据项属性 Name 控件的名字属性 OutlineStyle 类型属性 PageIndex 页索引属性 Pages 页属性 Pen 画刷设置属性 Picture 显示图象属性 PictureClosed 设置Closed位图属性 PictureLeaf 设置Leaf位图属性 PictureMinus 设置Minus位图属性 PictureOpen 设置Open位图属性 PicturePlus 设置Plus位图属性 ReadOnly 只读属性属性 ScrollBars 滚动条状态属性 SelectedColor 选中颜色属性 Shape 显示的形状属性 SmallChange 最小改变值属性 Sorted 是否允许排序属性 StartMargin 开始边缘属性 State 控件当前状态属性 Stretch 自动适应控件的大小属性 Style 类型选择属性 TabIndex 标记索引属性 Tabs 标记每一项的内容属性 Text 显示的文本属性 UnSelectedColor 未选中颜色属性 Visible 控件的可见性属性 WantReturns 为True时,按回车键产生一个回车符;1. 一般的源代码格式规则21.1 缩进21.2 空格21.3 边距21.4 颜色及文字属性21.5 begin???end 22. OBJECT PASCAL 32.1 括号32.2 保留字和关键字32.3 过程和函数(例程)32.4 变量42.5 常量(const) 52.6 资源串(resourcestring) 52.7 类型52.8 构造类型62.9 语句62.10 结构化异常处理82.11 类83. 文件103.1 项目文件103.2 Form文件103.3 数据模块文件103.4 远程数据模块文件103.5 单元文件103.6 文件头113.7 函数或过程头格式如下114. Form与数据模块124.1 Form 124.2 数据模块135. 包145.1 运行期包与设计期包145.2 文件命名标准146. 元件146.1 自定义的元件146.2 元件实例的命名规则156.3 元件性质标识名156.4 元件的前缀151. 一般的源代码格式规则1.1 缩进缩进就是每级间有两个空格。
[新手必看]delphi部分的控件属性.方法.事件及常用函数的中文说明(定期更新)1. TmainMemu控件该控件是一个标准的菜单控件,运用它为窗口提供菜单。
该对象的层次结构为:TObject—TPersistent--TCompoment—TMenu。
属性1-AutoMetge:Boolean功能:用于确定非MID程序中非主Form上的菜单要不要和主Form的菜单合并。
主Form菜单AutoMerge的特性总是False。
此外,还要设置菜单项的GroupInd ex属性。
2-BiDiMode:TBiDiMode功能:控制菜单的布置模式,是从左至右,还是从右至左。
3-Handle:HMENU功能:菜单窗口句柄。
4-Images:TImagList功能:出现在菜单项左边的图像列表。
菜单项通过设置它们的ImageIndex属性,以确定图像列表中的哪—个图像出现在菜单项的左边。
5-Items:TMenuItem功能:菜单项,描述了菜单的元素。
6-OwnerDraw:Boolean功能:确定菜单项是否可以由应用程序来画。
7-ParentBiDiMode:Boolean功能:确定BiDiMode属性是否从父辈继承而来,菜单的父辈一般为Form。
方法1-GetOle2AcceleratorTabel:(var AccelTable:HAccel;var AccelCount:Int eger;Group:array of Integer)功能:返回主菜单的加速键表,其参数如下AccelTabel:设置加速键表的句柄。
AccelCount:设置加速键的总数。
Groups:即GroupIndex的值。
2-Merge:功能:组合Form上的一个主菜单与另一个非MDI应用程序的主菜单。
调用Merg e方法将另一个主菜单组合进该菜单。
参数Menu指定了要合并的菜单3-PopulateOle2Menu:(ShareMenu:HMenu; Groups:array of Integer; var W idths:array of Longint)功能:组装OLE菜单。
Pascal语言函数集(含Delphi控件属性) 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函数返回圆周率pipicture属性显示图象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函数测试变体是否为unassignedvarisnull函数测试变体是否为nullvartodatetime函数将给定的变体转换为日期时间vartype函数将变体转换为指定的类型并保存它visible属性控件的可见性wantreturns属性为true时,按回车键产生一个回车符;为false时,按下ctrl+enter才产生回车符write命令对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件中writeln命令执行write过程,然后输出一行结束标志widecharlentostring函数将ansi字符串转换为unicode字符串widecharlentostrwar函数将unicode字符串转换为ansi字符串变量widechartostring函数将unicode字符串转换为ansi字符串widechartostrvar函数将unicode字符串转换为ansi字符串变量保留字Pascal中规定了一批单词,给这些单词赋予特定的含义,在进行程序设计时不能把这些单词重新定义或用于其它目的。
在Delphi中,提供了多种二元比较函数,以下是部分常用的函数介绍:
- `CompareStr`:比较两个字符,当`S1>S2`时返回值大于0,当`S1<S2`时返回值小于0,当`S1=S2`时返回值等于0。
该函数区分大小写。
- `CompareMem`:比较两个内存指针,返回布尔值。
如果两个指针指向的内存内容前`Length`个字节完全相同,则返回`True`;否则返回`False`。
- `CompareText`:比较两个字符串,不区分大小写。
- `AnsiUpperCase`:返回字符串`S`的大写形式。
非小写的字符不变。
- `AnsiLowerCase`:返回字符串`S`的小写形式。
非大写字符不处理。
- `AnsiCompareStr`:返回比较两个字符串的结果,当`S1>S2`时返回值大于0,当`S1<S2`时返回值小于0,当`S1=S2`时返回值等于0。
该函数区分大小写。
- `AnsiSameStr`:返回两个字符串是否相等,区分大小写。
这些函数可以用于判断两个字符串、字符或内存指针的大小关系,在编程中可以根据具体需求选择合适的函数。
如需了解更多Delphi函数的使用方法,可以继续向我提问。
Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结 .Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结 .Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结这两天把一个使用Delphi2007成功升级到了Delphi2010。
升级途中很艰辛,总结了以下经验与大家分享。
另外,D7使用的第三方组件,由于官方没有发布For Delphi2010的更新,修改的第三方组件列表见文章尾部。
1,PChar因为Delphi不支持无类型指针的算术运算,很多程序员使用PChar来代替Pointer,即使指针指向目标并不是PAnsiChar。
考虑如下代码:varP:PChar;Buffer:Pointer;beginGetMem(Buffer,255);P:=Buffer;p^:=#1; Inc(P);p^:=#2;FreeMem(Buffer,255);end;在2010中PChar已经不再表示PAnsiChar而是表示PWideChar,如果依然这样写,运行时很可能会得到一个内存访问错误。
因为每次Inc(P),实际上指针向前移动了2字节,因为SizeOf(WideChar)=2,Inc(P)相当于P:=P+SizeOf(WideChar)。
解决方法是把PChar替换成PAnsiChar2,Move FillChar CopyMemory这些函数依赖的是字节长度,往往我们直接使用Length(Str)来获取,这是行不通的。
考虑如下代码:varP1,P2:String;beginP1:='test';SetLength(P2,Length(P1));Move(P1[1],P2[1],Length(P1));end在2010中String默认映射到UnicodeString,单个字符是2字节,所以上文中P1实际占用了8字节内存,而传给Move函数的长度只有4字节,最终结果是P2="te"。
关于UpperCase和AnsiUpperCase
不要使用UpperCase, 应使用AnsiUpperCase,否则你的程序将在国际化中工作不正常。
对此表示疑惑,有人可以解释一下吗?
UpperCase returns a copy of the string S, with the same text but with all 7-bit ASCII characters between 'a' and 'z' converted to uppercase. To convert 8-bit international characters, use AnsiUpperCase instead.
AnsiUpperCaseUpperCase returns a copy of the string S, with the same text but with all 7-bit ASCII characters between 'a' and 'z' converted to uppercase. To convert 8-bit international characters, use AnsiUpperCase instead.
uppercase()用于转换一般的字符串,ansiuppercase()用于转换国际性的字符串。
当你使用的字符集是DBCS而不是unicode的时候,UpperCase会一个字节一个字节取出来,如果它在'a'到'z'之间,就会被减32,而DBCS字符集只对前导字节有规定,后一个字节可以任意使用,如果后一个字节刚好在'a'到'z'之间就会被转换错误。
使用unicode的时候,该函数不会有问题。
使用AnsiUpperCase时delphi调用API函数进行转换,它只会对一个字符而不是字节进行转换。
例如:
在繁體下使用以下語句:Showmessage(Uppercase('基本工資')).結果:基本下資該語句,在簡體下運行正常,請教各位大俠為什麼在繁體下就會出現錯誤呢?UP对单字节进行判断做出变换,即:$41至$5A,简体中文所有字均大于$A0,而繁体则不是了。
經過一番資料的查證,最後終於搞清楚啦!Uppercase是對常規性字符進行轉換。
AnSiUppercase就可以對國際性字符進轉換啦!唉。