delphi for php 支持中文的方法

其实很简单的。。在Tool->Options中点击Editor Options,把use utf-8 to create new units and forms的勾去掉。然后再点击PHP,把default charset设为gb2312,再勾上set these values on php.ini。点击ok
好了,现在放心的使用中文吧! 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
修改说明: ================================================================================== 1 原版只支持Delphi XE,本版改为可以支持Delphi6/7,在Delphi6下编译运行通过 2 修正了原版无法支持中文名称的BUG 使用示例: ================================================================================== ossTemp := TAliOssFileSystem.Create(OSS_ACCESS_ID, OSS_ASSCESS_KEY, OSS_HOSTNAME); ossTemp.ChangeVolumn(sBucketName); ossTemp.UploadFile(sLocalFileName, sOSSFileName); ossTemp.Free; 原版说明: ================================================================================== 该SDK使用Delphi/Object Pascal编程语言编写,完整实现了阿里云OSS API的全部功能,并提 供了两套API:第一套API(类名:TAliOss)仿照OSS PHP SDK实现了全部函数,第二套API( 类名:TAliOssFileSystem)封装了TAliOss,并在其的基础上实现了类似于文件系统的API, 实现了包括“卷”、“文件夹”、“文件”等抽象概念,并提供相应的功能函数。 两套API面向的应用场景不同:TAliOssFileSystem适合于将OSS服务看作是一种文件系统的应 用,开发人员不必了解OSS API的内部参数及XML定义,可提高编程效率,使用方便;TAliOSS 适合于其他类型的应用,当编程人员需要更加定制化的调用或者需要更加灵活的参数设置时, 可以直接使用该SDK操作调用参数和返回值。两套API互不干扰,可以在项目中同时使用。
Sisulizer 4 企业版方便地为你的软件提供多种语言支持,三个步骤进行本地化:扫描应用程序和定位文本;使用Sisulizer可视化编辑工具翻译文本;创建本地化软件版本。Sisulizer 能提供对绝大多数应用程序的良好支持,还支持对各种源代码文件、网页的本地化。 Sisulizer 4 中文版 Sisulizer Enterprise Edition 是一款软件本地化(也就是中文汉化)以增加收入的工具。Sisulizer方便地为你的软件提供多种语言支持,三个步骤进行本地化:扫描应用程序和定位文本;使用Sisulizer可视化编辑工具翻译文本;创建本地化软件版本。这个是企业多国语言版本,适用Windows 2000、XP、2003作业平台. Sisulizer Enterprise Edition 方便地为你的软件提供多种语言支持,三个步骤进行本地化:扫描应用程序和定位文本;使用Sisulizer可视化编辑工具翻译文本;创建本地化软件版本。 Sisulizer 能提供对绝大多数应用程序的良好支持,还支持对各种源代码文件、网页的本地化。 Sisulizer Enterprise Edition 的第3版支持新的平台,如Android, FireMonkey, Delphi XE2 64位和改进。 NET支持。它配备了许多新的功能,如翻译记忆编辑器,真正的HTML预览,和几十个内置的更多有用的改进。建议所有的Sisulizer客户更新. Sisulizer Enterprise Edition 是为大企业以及日益全球化的软件公司提供的最佳软件本地化工具。其可广泛的应用于服务器数据库的本地化,Web应用程序的本地化以及使用共享的译码存储系统。通过使用我们提供的命令行工具,用户可以在其软件开发过程中集成Sisulizer的功能。其翻译网格中支持的实时拼写检查能帮助用户的翻译程序创建质量更优的翻译,此外,其提供了许多报表以及验证功能,以帮助用户对其软件进行更佳的本地化工作。Sisulizer Enterprise有着良好的机器翻译服务的用户接口。 Sisulizer Enterprise Edition 功能亮点 -用户只需简单的三步即可完成本地化工作:扫描,翻译以及创建 -瞬间完成本地化更新。用户只需点击”Scan for Changes”按钮,Sisulizer即可显示所有的新的,改变的,或者移除掉的字符串,并且能自动的对既有翻译内容进行重用。能极大的节省日常开支以及翻译成本。 -能对诸如可执行文件或者DLL文件之类的二进制文件进行本地化。无需提供源代码。 -安全性保障。Sisulizer为二进制文件生成本地化版本,而无需对您的原始工程文件作任何修改。 -能翻译为任何人类语言,包括阿拉伯语,中文,希腊语,希伯来语,日语,韩语以及任何用户自定义语言。 -可翻译为可视化文本(所见即所得)。所以所有用户都可对之进行翻译,包括您,您的翻译,或者身在其他国家的合作者,您再也无需被他们带着无尽的问题轰炸了。 -再也无需再次翻译了。Sisulizer能自动记住您曾做过的所有翻译,这极大的节省了时间与金钱。 -能本地化所有的Windows的APP,包括一些当下流行的语言诸如,C/C++, Delphi, Java, 和 VB6, plus Qt, gnuGetText,以及一些Ini文件,比如Pocket PC等。 -用户可以在工程文件处于任何状态(alpha, beta,发布, 较小升级或重大更新)时即对之进行本地化。减少了您用于市场推广的时间以及能更快的使得资金回流。 Sisulizer Enterprise Edition 专业化功能 -完全支持.NET应用程序。可本地化C#,VB.NET Winforms, Silverlight以及WPF应用程序。其还支持ResX以及二进制资源库进行本地化。 -在原工程中翻译帮助文件。对翻译记录的共享加快了工作进度,减少了该过程中与翻译软件的通讯,时间与经济上均能大幅节省。 -支持本地化的主要格式:本地数据库,HTML,XML文件。 -除了内置的翻译内存以外,其还能与您的翻译软件进行翻译记录交换。 -适用于多种语言的实时的拼写检测器能帮助找出翻译文本以及原始文本中的错误。 -其有着强大用于翻译验证的QA功能,能帮助解决一些翻译过程中的一般性错误,诸如忘记的菜单快捷方式,错误的占位符数目,甚至一些在翻译过程中尚未发生的错误。 -其报表与统计功能使得用户能实时掌握本地化的状态与进度。 Sisulizer 中文企业注册版 Sisulizer Enterprise Edition 企业级功能 -拥有帮助将Sisulizer集成入创建过程的命令行工具。 -拥有用ASP,JAP和PHP语言编写的We
最近做一个接口,与JAVA的关于DES/CBC/PKCS5Padding 互相解密。在网上找了很多资料,摸索了3天才摸索出来。同样的明文,用JAVA加密的密文死活都跟用DELPHI加密的不相等,有时候少于8个字符的就正常,多了8个字符的就有问题,原来是有个7把7改成8就可以了。害人啊,, function EncryDes(const str:string;const keystr:string;const ivstr:string):string ; var key:tkey64; Context:TDESContext; Block,iv:TDESBlock; i,j,len,posnum:smallint; poschar,xx:char; xuhuan:integer; begin for i:=0 to 7 do begin if i > (length(keystr)-1) then key[i] :=0 else key[i] := byte(keystr[i+1]); end; for i:=0 to 7 do begin if i > (length(ivstr)-1) then iv[i]:=0 else iv[i] := byte(ivstr[i+1]); end; InitEncryptDES(Key, Context, true); len := length(AnsiString(str)); xx:= char( 8- (len mod 8)); if len<=8 then xuhuan:=0 else xuhuan:=round(len/8); for i:=0 to xuhuan do begin for j:=0 to 7 do begin if ((i*8+j+1)<=len) then //关键这一步,网上好多参考资料都是((i*7+j+1)<=len),而不是((i*8+j+1)<=len) 害人啊,害得我摸索了3天,,哎 begin poschar:=str[i*8+j+1]; block[j]:=byte(poschar); end else block[j]:=byte(xx); end; EncryptDESCBC(Context, IV, Block); for j:= 0 to 7 do begin posnum:=block[j]; result := result + inttohex(posnum,2); end; iv:=block; end; end; //完整代码如下 unit dmdes; {*********************************************************} {* DELPHIPHP、C#通用DES编码解码单元 *} {* 由TurboPower LockBox部分代码改写 *} {* 滕州市东鸣软件工作室制作 ZWF 2011-12-27 *} {*********************************************************} {EncryDes为编码函数,DecryDes为解码函数,keystr为密码,ivstr为偏移量, 一般设置keystr,ivstr相同,内容为八位字节长度的字符串,编码结果为十六进制字串} interface uses Windows,SysUtils; type PKey64 = ^TKey64; TKey64 = array [0..7] of Byte; type TDESBlock = array[0..7] of Byte; TDESContext = packed record TransformedKey : array [0..31] of LongInt; Encrypt : Boolean; end; function EncryDes(const str:string;const keystr:string;const ivstr:string):string ; function DecryDes(const str:string;const keystr:string;const ivstr:string):string ; function DecryDessec(const str:string;const keystr:string;const ivstr:string):string ; implementation procedure XorMemPrim(var Mem1; const Mem2; Count : Cardinal); register; asm push esi push edi mov esi, eax //esi = Mem1 mov edi, edx //edi = Mem2 push ecx //save byte count shr ecx, 2 //convert to dwords jz @Continue cld @Loop1: //xor dwords at a time mov eax, [edi] xor [esi], eax add esi, 4 add edi, 4 dec ecx jnz @Loop1 @Continue: //handle remaining bytes (3 or less) pop ecx and ecx, 3 jz @Done @Loop2: //xor remaining bytes mov al, [edi] xor [esi], al inc esi inc edi dec ecx jnz @Loop2 @Done: pop edi pop esi end; { -------------------------------------------------------------------------- } procedure XorMem(var Mem1; const Mem2; Count : Cardinal); begin XorMemPrim(Mem1, Mem2, Count); end; { -------------------------------------------------------------------------- } procedure EncryptDES(const Context : TDESContext; var Block : TDESBlock); const SPBox : array [0..7, 0..63] of DWord = (($01010400, $00000000, $00010000, $01010404, $01010004, $00010404, $00000004, $00010000, $00000400, $01010400, $01010404, $00000400, $01000404, $01010004, $01000000, $00000004, $00000404, $01000400, $01000400, $00010400, $00010400, $01010000, $01010000, $01000404, $00010004, $01000004, $01000004, $00010004, $00000000, $00000404, $00010404, $01000000, $00010000, $01010404, $00000004, $01010000, $01010400, $01000000, $01000000, $00000400, $01010004, $00010000, $00010400, $01000004, $00000400, $00000004, $01000404, $00010404, $01010404, $00010004, $01010000, $01000404, $01000004, $00000404, $00010404, $01010400, $00000404, $01000400, $01000400, $00000000, $00010004, $00010400, $00000000, $01010004), ($80108020, $80008000, $00008000, $00108020, $00100000, $00000020, $80100020, $80008020, $80000020, $80108020, $80108000, $80000000, $80008000, $00100000, $00000020, $80100020, $00108000, $00100020, $80008020, $00000000, $80000000, $00008000, $00108020, $80100000, $00100020, $80000020, $00000000, $00108000, $00008020, $80108000, $80100000, $00008020, $00000000, $00108020, $80100020, $00100000, $80008020, $80100000, $80108000, $00008000, $80100000, $80008000, $00000020, $80108020, $00108020, $00000020, $00008000, $80000000, $00008020, $80108000, $00100000, $80000020, $00100020, $80008020, $80000020, $00100020, $00108000, $00000000, $80008000, $00008020, $80000000, $80100020, $80108020, $00108000), ($00000208, $08020200, $00000000, $08020008, $08000200, $00000000, $00020208, $08000200, $00020008, $08000008, $08000008, $00020000, $08020208, $00020008, $08020000, $00000208, $08000000, $00000008, $08020200, $00000200, $00020200, $08020000, $08020008, $00020208, $08000208, $00020200, $00020000, $08000208, $00000008, $08020208, $00000200, $08000000, $08020200, $08000000, $00020008, $00000208, $00020000, $08020200, $08000200, $00000000, $00000200, $00020008, $08020208, $08000200, $08000008, $00000200, $00000000, $08020008, $08000208, $00020000, $08000000, $08020208, $00000008, $00020208, $00020200, $08000008, $08020000, $08000208, $00000208, $08020000, $00020208, $00000008, $08020008, $00020200), ($00802001, $00002081, $00002081, $00000080, $00802080, $00800081, $00800001, $00002001, $00000000, $00802000, $00802000, $00802081, $00000081, $00000000, $00800080, $00800001, $00000001, $00002000, $00800000, $00802001, $00000080, $00800000, $00002001, $00002080, $00800081, $00000001, $00002080, $00800080, $00002000, $00802080, $00802081, $00000081, $00800080, $00800001, $00802000, $00802081, $00000081, $00000000, $00000000, $00802000, $00002080, $00800080, $00800081, $00000001, $00802001, $00002081, $00002081, $00000080, $00802081, $00000081, $00000001, $00002000, $00800001, $00002001, $00802080, $00800081, $00002001, $00002080, $00800000, $00802001, $00000080, $00800000, $00002000, $00802080), ($00000100, $02080100, $02080000, $42000100, $00080000, $00000100, $40000000, $02080000, $40080100, $00080000, $02000100, $40080100, $42000100, $42080000, $00080100, $40000000, $02000000, $40080000, $40080000, $00000000, $40000100, $42080100, $42080100, $02000100, $42080000, $40000100, $00000000, $42000000, $02080100, $02000000, $42000000, $00080100, $00080000, $42000100, $00000100, $02000000, $40000000, $02080000, $42000100, $40080100, $02000100, $40000000, $42080000, $02080100, $40080100, $00000100, $02000000, $42080000, $42080100, $00080100, $42000000, $42080100, $02080000, $00000000, $40080000, $42000000, $00080100, $02000100, $40000100, $00080000, $00000000, $40080000, $02080100, $40000100), ($20000010, $20400000, $00004000, $20404010, $20400000, $00000010, $20404010, $00400000, $20004000, $00404010, $00400000, $20000010, $00400010, $20004000, $20000000, $00004010, $00000000, $00400010, $20004010, $00004000, $00404000, $20004010, $00000010, $20400010, $20400010, $00000000, $00404010, $20404000, $00004010, $00404000, $20404000, $20000000, $20004000, $00000010, $20400010, $00404000, $20404010, $00400000, $00004010, $20000010, $00400000, $20004000, $20000000, $00004010, $20000010, $20404010, $00404000, $20400000, $00404010, $20404000, $00000000, $20400010, $00000010, $00004000, $20400000, $00404010, $00004000, $00400010, $20004010, $00000000, $20404000, $20000000, $00400010, $20004010), ($00200000, $04200002, $04000802, $00000000, $00000800, $04000802, $00200802, $04200800, $04200802, $00200000, $00000000, $04000002, $00000002, $04000000, $04200002, $00000802, $04000800, $00200802, $00200002, $04000800, $04000002, $04200000, $04200800, $00200002, $04200000, $00000800, $00000802, $04200802, $00200800, $00000002, $04000000, $00200800, $04000000, $00200800, $00200000, $04000802, $04000802, $04200002, $04200002, $00000002, $00200002, $04000000, $04000800, $00200000, $04200800, $00000802, $00200802, $04200800, $00000802, $04000002, $04200802, $04200000, $00200800, $00000000, $00000002, $04200802, $00000000, $00200802, $04200000, $00000800, $04000002, $04000800, $00000800, $00200002), ($10001040, $00001000, $00040000, $10041040, $10000000, $10001040, $00000040, $10000000, $00040040, $10040000, $10041040, $00041000, $10041000, $00041040, $00001000, $00000040, $10040000, $10000040, $10001000, $00001040, $00041000, $00040040, $10040040, $10041000, $00001040, $00000000, $00000000, $10040040, $10000040, $10001000, $00041040, $00040000, $00041040, $00040000, $10041000, $00001000, $00000040, $10040040, $00001000, $00041040, $10001000, $00000040, $10000040, $10040000, $10040040, $10000000, $00040000, $10001040, $00000000, $10041040, $00040040, $10000040, $10040000, $10001000, $10001040, $00000000, $10041040, $00041000, $00041000, $00001040, $00001040, $00040040, $10000000, $10041000)); var I, L, R, Work : DWord; CPtr : PDWord; procedure SplitBlock(const Block : TDESBlock; var L, R : DWord); register; asm push ebx push eax mov eax, [eax] mov bh, al mov bl, ah rol ebx, 16 shr eax, 16 mov bh, al mov bl, ah mov [edx], ebx pop eax mov eax, [eax+4] mov bh, al mov bl, ah rol ebx, 16 shr eax, 16 mov bh, al mov bl, ah mov [ecx], ebx pop ebx end; procedure JoinBlock(const L, R : LongInt; var Block : TDESBlock); register; asm push ebx mov bh, al mov bl, ah rol ebx, 16 shr eax, 16 mov bh, al mov bl, ah mov [ecx+4], ebx mov bh, dl mov bl, dh rol ebx, 16 shr edx, 16 mov bh, dl mov bl, dh mov [ecx], ebx pop ebx end; procedure IPerm(var L, R : DWord); var Work : DWord; begin Work := ((L shr 4) xor R) and $0F0F0F0F; R := R xor Work; L := L xor Work shl 4; Work := ((L shr 16) xor R) and $0000FFFF; R := R xor Work; L := L xor Work shl 16; Work := ((R shr 2) xor L) and $33333333; L := L xor Work; R := R xor Work shl 2; Work := ((R shr 8) xor L) and $00FF00FF; L := L xor Work; R := R xor Work shl 8; R := (R shl 1) or (R shr 31); Work := (L xor R) and $AAAAAAAA; L := L xor Work; R := R xor Work; L := (L shl 1) or (L shr 31); end; procedure FPerm(var L, R : DWord); var Work : DWord; begin L := L; R := (R shl 31) or (R shr 1); Work := (L xor R) and $AAAAAAAA; L := L xor Work; R := R xor Work; L := (L shr 1) or (L shl 31); Work := ((L shr 8) xor R) and $00FF00FF; R := R xor Work; L := L xor Work shl 8; Work := ((L shr 2) xor R) and $33333333; R := R xor Work; L := L xor Work shl 2; Work := ((R shr 16) xor L) and $0000FFFF; L := L xor Work; R := R xor Work shl 16; Work := ((R shr 4) xor L) and $0F0F0F0F; L := L xor Work; R := R xor Work shl 4; end; begin SplitBlock(Block, L, R); IPerm(L, R); CPtr := @Context; for I := 0 to 7 do begin Work := (((R shr 4) or (R shl 28)) xor CPtr^); Inc(CPtr); L := L xor SPBox[6, Work and $3F]; L := L xor SPBox[4, Work shr 8 and $3F]; L := L xor SPBox[2, Work shr 16 and $3F]; L := L xor SPBox[0, Work shr 24 and $3F]; Work := (R xor CPtr^); Inc(CPtr); L := L xor SPBox[7, Work and $3F]; L := L xor SPBox[5, Work shr 8 and $3F]; L := L xor SPBox[3, Work shr 16 and $3F]; L := L xor SPBox[1, Work shr 24 and $3F]; Work := (((L shr 4) or (L shl 28)) xor CPtr^); Inc(CPtr); R := R xor SPBox[6, Work and $3F]; R := R xor SPBox[4, Work shr 8 and $3F]; R := R xor SPBox[2, Work shr 16 and $3F]; R := R xor SPBox[0, Work shr 24 and $3F]; Work := (L xor CPtr^); Inc(CPtr); R := R xor SPBox[7, Work and $3F]; R := R xor SPBox[5, Work shr 8 and $3F]; R := R xor SPBox[3, Work shr 16 and $3F]; R := R xor SPBox[1, Work shr 24 and $3F]; end; FPerm(L, R); JoinBlock(L, R, Block); end; procedure InitEncryptDES(const Key : TKey64; var Context : TDESContext; Encrypt : Boolean); const PC1 : array [0..55] of Byte = (56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3); PC2 : array [0..47] of Byte = (13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31); CTotRot : array [0..15] of Byte = (1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28); CBitMask : array [0..7] of Byte = (128, 64, 32, 16, 8, 4, 2, 1); var PC1M : array [0..55] of Byte; PC1R : array [0..55] of Byte; KS : array [0..7] of Byte; I, J, L, M : LongInt; begin {convert PC1 to bits of key} for J := 0 to 55 do begin L := PC1[J]; M := L mod 8; PC1M[J] := Ord((Key[L div 8] and CBitMask[M]) 0); end; {key chunk for each iteration} for I := 0 to 15 do begin {rotate PC1 the right amount} for J := 0 to 27 do begin L := J + CTotRot[I]; if (L (length(keystr)-1) then key[i] :=0 else key[i] := byte(keystr[i+1]); end; for i:=0 to 7 do begin if i > (length(ivstr)-1) then iv[i]:=0 else iv[i] := byte(ivstr[i+1]); end; InitEncryptDES(Key, Context, true); len := length(AnsiString(str)); xx:= char( 8- (len mod 8)); if len<=8 then xuhuan:=0 else xuhuan:=round(len/8); for i:=0 to xuhuan do begin for j:=0 to 7 do begin if ((i*8+j+1) (length(temp)-1) then key[i] :=0 else key[i] := byte(temp[i+1]); end; temp := ivstr; for i:=0 to 7 do begin if i > (length(temp)-1) then iv[i] := 0 else iv[i] := byte(temp[i+1]); end; InitEncryptDES(Key, Context, False); temp := str; posnum := 0; for i:=0 to length(temp)-1 do begin Block[posnum] := byte(temp[i+1]); posnum := posnum+1; if posnum = 8 then begin bak := block; EncryptDESCBC(Context, IV, Block); for j:= 0 to 7 do begin // temp := temp+inttostr(byte(block[i]))+' '; res := res + char(block[j]); end; iv := bak; posnum := 0; end; end; if posnum 0 then begin // end else begin temp:=''; for i:= 1 to length(res) do begin temp := temp+char(res[i]); end; Result:= trim(temp); end; end; function DecryDes(const str:string;const keystr:string;const ivstr:string):string ; var key:tkey64; Context:TDESContext; bak,Block,iv:TDESBlock; i,j,len,posnum:smallint; poschar,xx:char; res,lss:string; begin for i:=0 to 7 do begin if i > (length(keystr)-1) then key[i] :=0 else key[i] := byte(keystr[i+1]); end; for i:=0 to 15 do begin if i > (length(ivstr)-1) then iv[i]:=0 else iv[i] := byte(ivstr[i+1]); end; InitEncryptDES(Key, Context, false); res:=''; for j:= 0 to (length(str) div 2)-1 do begin lss:=copy(str,j*2+1,2); res:=res+ char(StrToInt('$'+lss)) ; end; len := length(AnsiString(res)); for i:=0 to round(len/8)-1 do begin for j:=0 to 7 do begin if ((i*7+j+1)<=len) then begin poschar:=res[i*8+j+1]; block[j]:=byte(poschar); end else begin block[j]:=byte(xx); end; end; bak:=block; EncryptDESCBC(Context, IV, Block); for j:= 0 to 7 do begin result := result + char(block[j]); end; iv:=bak; end; end; end.
复杂的报表?在Report Machine面前,还会有什么复杂的报表存在吗?不,不会有的,因为这是一个功能强大,完全自动化、完全自由设计的报表控件。对于一般的主从表,单表,你甚至只需要点动鼠标次数=你的数据字段个数就可以完成一个完全自定义的,并且支持用户进行格式修改加工,重新设计格式的报表!想想fast report 吧,Report Machine会fast report会的,还会它不会的!这是一个完全中文化报表控件,支持delphi5到delphi7,BCB5到BCB6。它的最大优点就是:强大与自由!   Report Machine目前主要能做的:   1、支持屏幕打印,控制方法多样,可以打印全部rxlib控件 全部InfoPower控件,TDBGrid,TStringGrid,TImage,TEdit等,TDBGridEh,f1book, TDecisionGrid等等众多控件。(例子1,例子2,例子3,例子4,例子5)   2、支持最终用户设计、修改报表,只需连接相关的数据源,指出数据的位 置(设置报表样式),无论是主从表,子报表,套表,都可迅速生成。开发 一个报表只需几分钟的时间。   3、报表样式可以保存为rmf格式,下次可通过读入使用(配合SQL脚本就可以生成 报表)。并可以把带数据的报表保存为rmp格式,在任何机器上都可以浏览、打印, 而不需要数据库。   4、生成后的报表支持修改,包括字体的设置,边框的设置,修改内容等。   5、报表编辑器内自带ado,bde,ibx,Diamond dao,dbisam等数据访问控件,可以 通过这些控件开发独立的报表制作工具。其使用方法delphi中的控件是一样的。   6、完全、自由自定义页面、边距、字体,标题和页眉页脚,并可以在自认合适的 地方插入函数来实现当前日期,页合计,总合计等功能,合计字段可以放在页头,分 组头,并支持条件合计,对分组合计,分页合计,总计等只需简单地设置属性即可。   7、完全支持D5--D7,BCB5--BCB6。   8、报表中可以在自认合适的事件(on beforeprint,on afterprint等)中加入程 序脚本,以控制、或实现更复杂的打印效果。   9、更新迅速,可根据使用人员与用户的意见,不断的加入新的功能。   10、多种格式转换,可以把做出的报表转换为html,xls,pdf,bmp,jpeg等等格式。   11、自动对超长记录折行,超长的内容也会自动折行,中文换行不会乱码。   12、首家支持缩放打印功能,可以根据打印时选择的纸张自动缩放报表。   13、首家支持即打即停.   14、首家提供类似excel的报表设计器,给你足够灵活方表的报表设计方式。   15、首家提供双报表设计器(第一种,第二种),满足所有的需求。   16、更是提供类似于ObjectPascal的script,实现特殊功能。   17、首家提供web,IntraWeb中的报表解决方案。   18、首家提供报表压缩处理,占用内存更少,生成报表速度更快。   19、首家提供合并单元格功能,更加适应处理复杂的中文报表。   20、自动填空行,每页打印数量等细节处理更完善。 21、首家提供IntraWeb下报表插件,完美实现b/s下报表 22、提供webreport方案,可以在asp,asp.net,php中实现报表的打印预览。
使用视觉化RAD 整合开发环境与元件架构进行CodeGear 创新的 PHP开发    S COTTS VALLEY, Calif.–2007年2月20日–-CodeGear,作为开发者工具领导者, 发布了Delphi for PHP, 这是一个基于元件的快速应用程式开发(RAD)IDE, 同时还发布VCL for PHP,这是一个开放原始程式码的可视元件库。 Delphi for PHPPHP的Web开发者带来了Delphi用户已经享受多年 的RAD生产力。 PHP是当今的最富盛名的动态Web语言,是10大程式设计语言之一。 Delphi for PHP使PHP能够更快且更轻松的开发丰富的资料库驱动的Web应 用程式,使其达到更高水准。    位于加拿大安大略省的一家 开发者工具公司-JomiTech的所有者 Jonath an Benedicto认为:“CodeGear开发工具是市场上最好的工具, Delphi for PHP也是如此。”Benedicto说道: “作为长期PHP的开发者, 我第一时间采用了Delphi for PHP作为我最喜爱的编辑器。VCL for PHP 具有我们所熟悉的Delphi设计,并提供了大量的面向RAD能力。如今, 我可以使用经整合的页面范本功能, 轻松地从实际网页逻辑代码中减弱GUI。Delphi for PHP真正实现了将PHP 开发引领到更高水准。”    CodeGear产品与策略部副总裁Michael Swi ndell说道:“在创建动态Web应用程式时, PHP开发者已经拥有原始程式码编辑和调试工具; 而PHP真正缺少的是快速开发工具和能够与现代工具相抗衡的元件架构, 比如Visual StudioR 和Delphi以及类似于ASP.NET 和VCL的架 构。”    Swindell说道: “Delphi for PHP提供了快速和视觉化创建强大的PHP应用程式的能力, 新的PHP元件以及打包现有PHP代码到可重复使用的视觉化元件所需要的特性和功能性 。Delphi for PHP通过无缝支持MySQLR, InterBaseR from CodeGear, 以及其他SQL资料库实现对所有这些的支持, 并通过开源VCL for PHP得以实现。MicrosoftR WindowsR RAD 开发者现在已经可以享受Delphi 和 C++BuilderR所提供的熟练性和易用性 ,可以迅速而自信地移入PHP开发。” Delphi for PHP所包含的重要特性: 适用于PHP的RAD环境 1. VCL for PHP – 基于开源PHP 5版本而开发的可视元件 库,拥有超过50个可延展和可复用的组件, 以及无缝AJAX整合 2. 与InterBase, MySQL, Oracle, Microsoft SQL Server以及其他常用资料库的开盒即用的资料库整合 3. 经整 合的PHP调试工具 4. 在Windows,Linux, Solaris 以及其他平台上的PHP应用程式的分发 5. 对各种应用程式的国际化支援 6. 使用 Data Explorer for InterBase和 MySQL, 拖拉资料库应用程式开发 7. Code editor with 使用Code Insight, Code Explorer,以及 Code Templates的代码编辑器, 使写入PHP代码更加轻松和快捷
使用视觉化RAD 整合开发环境与元件架构进行CodeGear 创新的 PHP开发    S COTTS VALLEY, Calif.–2007年2月20日–-CodeGear,作为开发者工具领导者, 发布了Delphi for PHP, 这是一个基于元件的快速应用程式开发(RAD)IDE, 同时还发布VCL for PHP,这是一个开放原始程式码的可视元件库。 Delphi for PHPPHP的Web开发者带来了Delphi用户已经享受多年 的RAD生产力。 PHP是当今的最富盛名的动态Web语言,是10大程式设计语言之一。 Delphi for PHP使PHP能够更快且更轻松的开发丰富的资料库驱动的Web应 用程式,使其达到更高水准。    位于加拿大安大略省的一家 开发者工具公司-JomiTech的所有者 Jonath an Benedicto认为:“CodeGear开发工具是市场上最好的工具, Delphi for PHP也是如此。”Benedicto说道: “作为长期PHP的开发者, 我第一时间采用了Delphi for PHP作为我最喜爱的编辑器。VCL for PHP 具有我们所熟悉的Delphi设计,并提供了大量的面向RAD能力。如今, 我可以使用经整合的页面范本功能, 轻松地从实际网页逻辑代码中减弱GUI。Delphi for PHP真正实现了将PHP 开发引领到更高水准。”    CodeGear产品与策略部副总裁Michael Swi ndell说道:“在创建动态Web应用程式时, PHP开发者已经拥有原始程式码编辑和调试工具; 而PHP真正缺少的是快速开发工具和能够与现代工具相抗衡的元件架构, 比如Visual StudioR 和Delphi以及类似于ASP.NET 和VCL的架 构。”    Swindell说道: “Delphi for PHP提供了快速和视觉化创建强大的PHP应用程式的能力, 新的PHP元件以及打包现有PHP代码到可重复使用的视觉化元件所需要的特性和功能性 。Delphi for PHP通过无缝支持MySQLR, InterBaseR from CodeGear, 以及其他SQL资料库实现对所有这些的支持, 并通过开源VCL for PHP得以实现。MicrosoftR WindowsR RAD 开发者现在已经可以享受Delphi 和 C++BuilderR所提供的熟练性和易用性 ,可以迅速而自信地移入PHP开发。” Delphi for PHP所包含的重要特性: 适用于PHP的RAD环境 1. VCL for PHP – 基于开源PHP 5版本而开发的可视元件 库,拥有超过50个可延展和可复用的组件, 以及无缝AJAX整合 2. 与InterBase, MySQL, Oracle, Microsoft SQL Server以及其他常用资料库的开盒即用的资料库整合 3. 经整 合的PHP调试工具 4. 在Windows,Linux, Solaris 以及其他平台上的PHP应用程式的分发 5. 对各种应用程式的国际化支援 6. 使用 Data Explorer for InterBase和 MySQL, 拖拉资料库应用程式开发 7. Code editor with 使用Code Insight, Code Explorer,以及 Code Templates的代码编辑器, 使写入PHP代码更加轻松和快捷

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值