随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万


TByteHelper

TShortIntHelper

TSmallIntHelper

TWordHelper

TCardinalHelper

TIntegerHelper

TInt64Helper

TUInt64Helper

TNativeIntHelper

TNativeUIntHelper

// 它们定义在 System.SysUtils, 功能基本一样, 常用的有:
var
  I: Integer;
  S: string;
begin
  I := I.MaxValue;     //  2147483647
  I := I.MinValue;     // -2147483648
  I := I.Size;         // 4
  I := I.Parse('123'); // 123

  I := 255;
  S := I.ToString();     // '255'
  S := I.ToHexString;    // FF
  S := I.ToHexString(4); // 00FF
end;


TBooleanHelper

TByteBoolHelper

TWordBoolHelper

TLongBoolHelper

// 它们定义在 System.SysUtils, 基本无用.



TSingleHelper

TDoubleHelper

TExtendedHelper

// 它们定义在 System.SysUtils, 功能基本一样, 常用的有:
var
  F: Double;
  S: string;
begin
  F := F.MaxValue;      // 1.7976931348623157081e+308
  F := F.MinValue;      // -1.7976931348623157081e+308
  F := F.Size;          // 8
  F := F.Parse('3.14'); // 3.14

  F := Pi * 100;
  s := F.ToString();                      // 314.159265358979
  S := F.ToString(ffExponent, 6, 3);      // 3.14159E+002
  S := F.ToString(ffFixed, MaxInt, 2);    // 314.16; 保留两位小数点; 同 S := Format('%.2f', [F]);
  S := F.ToString(ffCurrency, MaxInt, 4); // ¥314.1593
end;


TCharHelper

// 它们定义在 System.Character, 它可以彻底替代同单元的 TCharacter 结构体. 主要方法有:
function IsControl: Boolean;
function IsDigit: Boolean;
function IsHighSurrogate: Boolean;
function IsInArray(const SomeChars: array of Char): Boolean;
function IsLetter: Boolean;
function IsLetterOrDigit: Boolean;
function IsLower: Boolean;
function IsLowSurrogate: Boolean;
function IsNumber: Boolean;
function IsPunctuation: Boolean;
function IsSeparator: Boolean;
function IsSurrogate: Boolean;
function IsSymbol: Boolean;
function IsUpper: Boolean;
function IsWhiteSpace: Boolean;
function ToLower: Char;
function ToUpper: Char;
function ToUCS4Char: UCS4Char;

// 以后可以不用 CharInSet()了, 不过得引用 System.Character 单元

uses System.Character;

procedure TForm1.FormCreate(Sender: TObject);
begin
  KeyPreview := True;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key.IsInArray(['1', '2', '3', '4', '5', '6', '7', '9', '0']) then
    ShowMessage('按下了数字键');

  if Key.IsNumber then
    ShowMessage('真的按下了数字键');
end;


System.SysUtils 还给了一个 TGuidHelper

var
  G: TGUID;
  S: string;
  bs: TBytes;
begin
  G := G.NewGuid;
  S := G.ToString;
  bs := G.ToByteArray;
end;

// XE4 中还看到几个 Helper, 如:
TCriticalSectionHelper
TConditionVariableHelper
CFGregorianDateHelper
TD2DMatrix3x2FHelper
TDSSessionHelper
TCanvasHelper
TStyleManagerHelper
TBitmapHelper
TContextHelper
TElementMarginsHelper
TThemeServicesClassHelper

// 这都不常用了, 不过这东西确实方便批量地扩展功能, 这或许会成为写代码的一种基本手法, 譬如:
// System.Rtti 单元中的 TListHelper, TArrayHelper 和 System.Classes 单元中的 TUInt32Helper

posted on   万一  阅读(4189)  评论(6编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
历史上的今天:
2008-06-15 再学 GDI+[37]: TGPPen - TGPCustomLineCap、SetCustomStartCap、SetCustomEndCap
2008-06-15 再学 GDI+[36]: TGPPen - SetLineCap


点击右上角即可分享
微信分享提示