⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringbuilder_mainform.pas

📁 source code for the Marco Cantu s book Delphi 2009 Handbook
💻 PAS
字号:
unit StringBuilder_MainForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TFormSBuilder = class(TForm)
    btnSample: TButton;
    btnPlusString: TButton;
    Memo1: TMemo;
    btnSbString: TButton;
    btnCharPos: TButton;
    btnPlusInt: TButton;
    btnSbInt: TButton;
    btnInsert: TButton;
    btnSbInsert: TButton;
    btnCapacity: TButton;
    btnPlusChar: TButton;
    btnSbChar: TButton;
    procedure btnSampleClick(Sender: TObject);
    procedure btnPlusStringClick(Sender: TObject);
    procedure btnSbStringClick(Sender: TObject);
    procedure btnCharPosClick(Sender: TObject);
    procedure btnPlusIntClick(Sender: TObject);
    procedure btnSbIntClick(Sender: TObject);
    procedure btnInsertClick(Sender: TObject);
    procedure btnSbInsertClick(Sender: TObject);
    procedure btnCapacityClick(Sender: TObject);
    procedure btnPlusCharClick(Sender: TObject);
    procedure btnSbCharClick(Sender: TObject);
  private
    procedure Log (const strMsg: string);
  public
    { Public declarations }
  end;

var
  FormSBuilder: TFormSBuilder;

implementation

{$R *.dfm}

procedure TFormSBuilder.btnCapacityClick(Sender: TObject);
var
  sBuilder: TStringBuilder;
  I: Integer;
  J: Integer;
begin
  sBuilder := TStringBuilder.Create ('');
  try
    for J := 1 to 10 do
    begin
      for I := 1 to 200 do
        sBuilder.Append (I);
      Log ('Len/Cap: ' + IntToStr (sBuilder.Length) +
        ':' + IntToStr (sBuilder.Capacity));
    end;
  finally
    sBuilder.Free;
  end;
end;

procedure TFormSBuilder.btnCharPosClick(Sender: TObject);
var
  str1: string;
  sBuilder: TStringBuilder;
begin
  str1 := '1234567890';
  Log ('str1[4]: ' + str1[4]);
  sBuilder := TStringBuilder.Create (str1);
  try
    Log ('sBuilder.Chars[4]: ' + sBuilder.Chars[4]);
  finally
    sBuilder.Free;
  end;
end;

procedure TFormSBuilder.btnSampleClick(Sender: TObject);
var
  sBuilder: TStringBuilder;
  str1: string;
begin
  sBuilder := TStringBuilder.Create;
  try
    str1 := sBuilder
      .Append(12)
      .Append('hello')
      .ToString;
    Log (str1);
  finally
    sBuilder.Free;
  end;
end;

 const MaxLoop = 1000000; // one million
// const MaxLoop = 10000000; // ten millions

procedure TFormSBuilder.btnPlusStringClick(Sender: TObject);
var
  str1, str2: string;
  I: Integer;
  t1: Cardinal;
begin
  t1 := GetTickCount;
  str1 := 'Marco ';
  str2 := 'Cant

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -