Delphi Programming / Object Pascal
[掲載 2022年09月18日] [更新 2022年09月18日] Delphi 一般・その他 |
TStringBuilder におけるメソッドチェーン |
動作確認等 |
Windows 10 ビルド 19043 Pro 64 bit + Delphi XE5(UP2) Pro VCL-32 |
01_TStringBuilder におけるメソッドチェーン |
TStringBuilder クラスでメソッドチェーンの機能を使用する例です.
メソッドチェーンは,メソッドの後に更にメソッドを実行する機能のことです.多用すると,コーディングの見通しが損なわれるかも知れません. |
インスタンス名.メソッド1.メソッド2.メソッド3. ... |
|
図1
[Button1] をクリック
|
|
図2
[Button2] をクリック
- 文字列リストを作成
- 一部,以下のメソッドチェーンを実行
AppendLine().Remove().Replace()
ToString.Remove()
|
|
図3
[Button3] をクリック
- 文字列の結合サンプル
- 一部,以下のメソッドチェーンを実行
Append().Remove().Replace()
ToString.Remove()
|
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//=============================================================================
// TStringBuilder を使用した文字列リスト
// AppendLine メソッドを使用
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
LStrBuild : TStringBuilder;
begin
Memo1.Lines.Clear;
LStrBuild := TStringBuilder.Create;
try
LStrBuild.AppendLine('東京都');
LStrBuild.AppendLine('神奈川県');
LStrBuild.AppendLine('群馬県');
LStrBuild.AppendLine('千葉県');
LStrBuild.AppendLine('福島県');
Memo1.Lines.Text := LStrBuild.ToString;
finally
FreeAndNil(LStrBuild);
end;
end;
//=============================================================================
// TStringBuilder におけるメソッドチェーン ( method chaining ) の例
// AppendLine メソッド実行後に
// Remove メソッドでインデックスが 5 ( 6 番目 ) から 2 文字削除して
// Replace メソッドで文字列を置換
// 注 : 改行文字 ( CR と LF ) も文字
//=============================================================================
procedure TForm1.Button2Click(Sender: TObject);
var
LStrBuild : TStringBuilder;
begin
Memo1.Lines.Clear;
LStrBuild := TStringBuilder.Create;
try
LStrBuild.AppendLine('東京都');
LStrBuild.AppendLine('神奈川県');
LStrBuild.AppendLine('群馬県');
LStrBuild.AppendLine('千葉県');
LStrBuild.AppendLine('福島県').Remove(5, 2).Replace('群馬県', '兵庫県 西脇市');
// 先頭から 3 文字削除
Memo1.Lines.Text := LStrBuild.ToString.Remove(0, 3);
finally
FreeAndNil(LStrBuild);
end;
end;
//=============================================================================
// TStringBuilder を使用した文字列の結合とメソッドチェーンの例
// Append メソッドを使用
//=============================================================================
procedure TForm1.Button3Click(Sender: TObject);
var
LStrBuild : TStringBuilder;
begin
Memo1.Lines.Clear;
LStrBuild := TStringBuilder.Create;
try
LStrBuild.Append('東京都');
LStrBuild.Append('神奈川県');
LStrBuild.Append('群馬県');
LStrBuild.Append('千葉県');
LStrBuild.Append('福島県').Remove(5, 2).Replace('群馬県', '兵庫県 西脇市');
// 先頭から 3 文字削除
Memo1.Lines.Text := LStrBuild.ToString.Remove(0, 3);
finally
FreeAndNil(LStrBuild);
end;
end;
end.
|