** Tnt Delphi UNICODE Controls Project **
Website: http://tnt.ccci.org/delphi_unicode_controls/
Email: troy.wolbrink@ccci.org
These controls are provided as-is, with no implied warranty. They are freely available for you to use in your own projects. Please let me know if you have found them helpful. Also, please let me know if you find any bugs or other areas of needed improvement.
---Delphi Installation--------------------------
The most simple way to install these components is by opening the appropriate design package in Delphi and clicking on the big "Install" button. For instance, Delphi 5's design package is TntUnicodeVcl_D50.dpk.
For BCB 2006 and newer, open the appropriate design package in the packages\bcbx\ folder using the Delphi personality. After compiling and installing, you should be able to use the components in both the Delphi and BCB personality. Remember to set the library path in menu "Tools->Options" for both the C++ Builder and the Delphi.
---A note on fonts----------------------
The default TFont uses "MS Sans Serif" which doesn't work well with most non-ANSI characters. I'd recommend using a TrueType font such as "Tahoma" if it is installed on the machine. To make TFont use a different font like "Tahoma" add this to the first line in the project:
Graphics.DefFontData.Name := 'Tahoma';
You might have to include "Graphics" in the file's uses clauses. Furthermore, adding this line of code to the project will cause the changed setting to only be applied at runtime, not at design time. To make a designtime change, you'd have to add this line to the initialization section of a unit in a design package.
Regarding the IDE, I use GExperts to change the font of the Object Inspector. The Wide String List editor uses the font used by the object inspector.
Also keep in mind that the font used by certain message boxes come from that set by Windows' Display properties.
---Background----------------------------
Designing software for an international audience, I've always wanted to write a full UNICODE application. My approach so far, has been to write Unicode on the inside, and MBCS on the outside. This has always been frustrating, because (even on Windows NT/2000/XP which provide native Unicode window controls) the WideStrings inside my application and databases were always confined to an ANSI VCL. And, since the VCL was designed to wrap the low-level Windows details, why shouldn't the VCL hide the fact that sometimes native Unicode controls are not possible on the given version of Windows. I believe the VCL should be written with a Unicode interface, even if it must (at times) deal with an ANSI operating system. For example, TEdit should expose Text as a WideString, even if it has to convert the WideString to an AnsiString on the Windows 9X platform.
In the past, the ANSI VCL may have made a little sense, considering that there were many more users of Windows 9X, than Windows NT. There would have been some performance penalty to use WideStrings on the Windows 9X platform. But with the faster computers of today, and with more people using platforms such as Windows 2000 and Windows XP, the ANSI VCL just doesn't make sense anymore. In fact, having to use the the ANSI VCL on Windows NT/2000/XP is slower because of the constant conversion to and from UNICODE inside Windows.
My coding signature is Tnt. I will use this to denote my classes from others.
For more information about me: <http://home.ccci.org/wolbrink/>
Some of my software projects (all written in Delphi).
TntMPD (contact manager for missionaries)
<http://www.tntmpd.com/>
Jesus Film Screen Saver
<http://home.ccci.org/wolbrink/screensaver.htm>
ActiveX SCR control
<http://tnt.ccci.org/download/activex_scr/ActiveXSCR.exe>
---Design Goals----------------------------
I want the controls to work on Windows 95, 98, ME, NT, 2000, XP, etc. I want a single EXE for all platforms. Of course, full UNICODE support is only truly available on NT/2000/XP. In other words, the controls should automatically scale to take advantage of native Unicode support when possible.
I want the controls to inherit from the Delphi VCL. I want to reuse as much code as possible. For the most part this makes sense. The only sticky part is where text messages get passed around. But I believe I've gotten past this through strategic subclassing at various points in the message flow chain. To give a rough comparison of why this is so important, check out the following chart which compares the lines of code in the VCL for a given control (4,397 in all), and the lines of code required in my descendent controls (655 in all). Besides saving lines of code, I get the advantage of automatically inheriting new features as new versions of Delphi come out. One such example is the AlphaBlending feature in the Delphi 6 TForm. Even though I use Delphi 5 now, I won't have to add any code to get this new feature.
---More Interesting Information----------------------------
Case Study: Porting an MFC Application to Unicode: It looks like the FrontPage 2002 team did the roughly the same thing to MFC as what I'm doing to the VCL. They did this with the same goal in mind: to support Unicode as much as possible depending on the support offered by Windows. Another goal was "Don�t abandon MFC; don�t rewrite app". Because they still want to support Windows 9X using the same worldwide EXE used everywhere. They couldn't just compile with the _UNICODE directive. They had to start with the ANSI MFC, strategically subclassing window procedures at just the right places. Hmmm... sounds familiar.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
TNT 控件包 v2.3 (最后的免费版) (114个子文件)
TntUnicodeVcl.bdsproj 10KB
TntUnicodeVcl_Design.bdsproj 10KB
TntUnicodeVcl_R90.bdsproj 10KB
TntUnicodeVcl_D90.bdsproj 10KB
TntUnicode_6.bpg 863B
TntUnicode_7.bpg 863B
TntLibR.bpk 10KB
TntLibD.bpk 9KB
TntUnicodeVcl_Design.cfg 259B
ExampleUnicode.cfg 254B
TntUnicodeVcl_D90.cfg 254B
TntUnicodeVcl_D70_DATASNAP.cfg 254B
TntUnicodeVcl.cfg 211B
TntUnicodeVcl_D60.cfg 206B
TntUnicodeVcl_R60.cfg 206B
TntUnicodeVcl_R90.cfg 206B
TntUnicodeVcl_R70.cfg 206B
TntUnicodeVcl_D70.cfg 206B
TntLibD.cpp 708B
TntLibR.cpp 670B
TntComCtrls.dcr 7KB
TntStdCtrls.dcr 5KB
TntDBCtrls.dcr 4KB
TntExtCtrls.dcr 4KB
TntExtDlgs.dcr 960B
TntDialogs.dcr 936B
TntGrids.dcr 932B
TntButtons.dcr 928B
TntMenus.dcr 928B
TntForms.dcr 920B
TntActnList.dcr 484B
TntStrEdit_Design.dfm 3KB
MainFrm.dfm 3KB
TntDBLogDlg.dfm 2KB
TntUnicodeVcl_D70_DATASNAP.dof 2KB
TntUnicodeVcl_D70.dof 2KB
TntUnicodeVcl_R60.dof 1KB
TntUnicodeVcl_R70.dof 1KB
TntUnicodeVcl_D60.dof 1KB
ExampleUnicode.dof 1KB
TntUnicodeVcl_R90.dpk 2KB
TntUnicodeVcl_R70.dpk 2KB
TntUnicodeVcl_R60.dpk 2KB
TntUnicodeVcl.dpk 2KB
TntUnicodeVcl_D60.dpk 2KB
TntUnicodeVcl_D70.dpk 2KB
TntUnicodeVcl_Design.dpk 1KB
TntUnicodeVcl_D90.dpk 1KB
TntUnicodeVcl_D70_DATASNAP.dpk 725B
ExampleUnicode.dpr 207B
TntCompilers.inc 9KB
2ccc.com.nfo 731B
2ccc.com.nfo 731B
TntComCtrls.pas 149KB
TntStdCtrls.pas 99KB
ActiveIMM_TLB.pas 68KB
TntDBCtrls.pas 61KB
TntSysUtils.pas 59KB
TntClasses.pas 53KB
TntWindows.pas 52KB
TntStdActns.pas 51KB
TntSystem.pas 43KB
TntExtActns.pas 39KB
TntControls.pas 37KB
TntDBGrids.pas 36KB
TntMenus.pas 36KB
TntDialogs.pas 31KB
TntButtons.pas 31KB
TntDB.pas 30KB
TntForms.pas 29KB
TntExtCtrls.pas 29KB
TntActnList.pas 28KB
TntWideStrings.pas 23KB
TntGrids.pas 21KB
TntDBActns.pas 16KB
TntFormatStrUtils.pas 14KB
TntMenus_Design.pas 12KB
TntWideStrUtils.pas 12KB
TntWideStringProperty_Design.pas 11KB
TntStrEdit_Design.pas 11KB
TntForms_Design.pas 11KB
TntExtDlgs.pas 9KB
TntActions_Design.pas 6KB
TntComCtrls_Design.pas 6KB
TntListActns.pas 6KB
TntDBClientActns.pas 6KB
TntCheckLst.pas 6KB
TntDesignEditors_Design.pas 5KB
TntUnicodeVcl_Register.pas 5KB
TntAxCtrls.pas 5KB
TntRegistry.pas 5KB
TntGraphics.pas 5KB
TntFileCtrl.pas 4KB
TntDBLogDlg.pas 4KB
TntBandActn.pas 3KB
TntClipBrd.pas 2KB
TntDBGrids_Design.pas 2KB
MainFrm.pas 2KB
TntDBClientActns_Design.pas 1KB
Reset Tnt Palette.reg 2KB
共 114 条
- 1
- 2
天马座的流星拳
- 粉丝: 1301
- 资源: 95
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页