TStringList
TStringList は、文字列の保持と管理をします。
- Sort
- 文字列をソートします。
- Find
- Find は、特定の文字列があるかどうかを調べます。特定の文字が見つからない場合は、False が返されます。また、文字列の添え字は、0 から始まります。Find はソートされたリストにのみ使用します。ソートされていないリストを調べる場合には、IndexOf を使用します。
- IndexOf
- ソートされていないリストに、特定の文字列があるかどうかを調べます。また、文字列の添え字は 0 から始まります。もし文字列が見つからない場合は、-1 が返ります。
- AddObject
- AddObject は、文字列とオブジェクトを関連付けて、それをリストに格納します。また、リストに保持されたオブジェクトはリストが破棄されてもオブジェクトは破棄されませんので、使い終わったら明示的に Free を呼んで破棄しなければなりません。また TStringList とは違い、TObjectList の場合は、TObjectList インスタンスが破棄されると、それ自身が保持しているオブジェクトも同時に破棄されます。
- Move
- Move は、リスト内の位置を変更します。
- AddStrings
- AddStrings はリストに、文字列をまとめて追加します。
Sort のサンプル △Top
procedure TForm1.Button3Click(Sender: TObject);
var
i: Integer;
list: TStringList;
begin
list := TStringList.Create;
list.Add('Home');
list.Add('Academic');
list.Add('Enterprise');
list.Add('Edition');
for i := 0 to list.Count-1 do
ListBox1.Items.Add(list.Strings[i]);
list.Sort;
for i := 0 to list.Count-1 do
ListBox2.Items.Add(list.Strings[i]);
list.Free;
end;
Find のサンプル △Top
procedure TForm1.Button1Click(Sender: TObject);
var
list: TStringList;
index: Integer;
i: Integer;
begin
list := TStringList.Create;
list.Add('Hello');
list.Add('hoge');
list.Add('Good');
list.Add('Delphi');
list.Sort;
if list.Find('hoge', index) then
ShowMessage(IntToStr(index));
for i := 0 to list.Count-1 do
ListBox1.Items.Add(list.Strings[i]);
list.Free;
end;
IndexOf のサンプル △Top
procedure TForm1.Button2Click(Sender: TObject);
var
list: TStringList;
index: Integer;
i: Integer;
begin
list := TStringList.Create;
list.Add('Delphi');
list.Add('coffee');
list.Add('tea');
list.Add('kylix');
for i := 0 to list.Count-1 do
ListBox1.Items.Add(list.Strings[i]);
index := list.IndexOf('tea');
if index <> -1 then
ShowMessage('tea は' + IntToStr(index) + '番目にあります。');
index := list.IndexOf('Hello');
if index = -1 then
ShowMessage('Hello は、ありません。');
list.Free;
end;
AddObject のサンプル △Top
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
TFruit = class(TObject)
public
procedure ShowFruit; virtual; abstract;
end;
TApple = class(TFruit)
public
procedure ShowFruit; override;
end;
TOrange = class(TFruit)
public
procedure ShowFruit; override;
end;
var
Form1: TForm1;
implementation
procedure TOrange.ShowFruit;
begin
ShowMessage('Orange');
end;
procedure TApple.ShowFruit;
begin
ShowMessage('Apple');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FruitList: TStringList;
Apple, Orange: TFruit;
index: Integer;
begin
FruitList := TStringList.Create;
Apple := TApple.Create;
Orange := TOrange.Create;
FruitList.AddObject('りんご', Apple);
FruitList.AddObject('オレンジ', Orange);
index := FruitList.IndexOfObject(Orange);
if index <> -1 then
(FruitList.Objects[index] as TFruit).ShowFruit;
index := FruitList.IndexOf('りんご');
if index <> -1 then
(FruitList.Objects[index] as TFruit).ShowFruit;
FruitList.Free;
Apple.Free;
Orange.Free;
end;
end.
Move のサンプル △Top
procedure TForm1.Button5Click(Sender: TObject);
var
list: TStringList;
i: Integer;
begin
list := TStringList.Create;
list.Add('Delphi 1');
list.Add('Delphi 2');
list.Add('Delphi 3');
list.Add('Delphi 4');
list.Add('Delphi 5');
list.Add('Delphi 6');
list.Move(1, 4);
for i := 0 to list.Count-1 do
ListBox1.Items.Add(list.Strings[i]);
list.Free;
end;
AddStrings のサンプル △Top
procedure TForm1.Button6Click(Sender: TObject);
var
list: TStringList;
begin
list := TStringList.Create;
list.Add('Button');
list.Add('Label');
list.Add('Form');
list.Add('Panel');
ListBox1.Items.AddStrings(list);
list.Free;
end;
up next
Last update: 2002/9/29