文字列を追加しソートする
この VCL アプリケーションの作成は以下の手順で行います。
- ボタン、ラベル、TListBox の各コントロールを持つ VCL フォームを作成します。
- 文字列を追加してソートするコードを記述します。
- アプリケーションを実行します。
ボタン、ラベル、リスト ボックスの各コントロールを持つ VCL フォームを作成するには:
- [ファイル|新規作成|その他...] の[Delphi プロジェクト]または[C++Builder プロジェクト]を選択し、[VCL フォーム アプリケーション]アイコンをダブルクリックします。VCL フォーム デザイナが表示されます。
- [ツール パレット]の[Standard]カテゴリから、TButton、TLabel、TListBox の各コンポーネントをフォームに配置します。
ストリームをコピーする手続きを記述するには:
- フォームで Button1 を選択します。
- [オブジェクト インスペクタ]で、[イベント]タブの OnClick アクションをダブルクリックします。コード エディタが開き、TForm1.Button1Click イベント ハンドラ ブロックにカーソルが置かれます。
- Delphi の場合は、カーソルを予約語 begin の前に置き、Enter キーを押します。これで、コード ブロックの前に新しい行が作成されます。
- 以下の変数宣言を入力します。
Delphi:
var
MyList: TStringList;
Index: Integer;
C++:
TStringList *MyList;
int Index;
- コード ブロック内にカーソルを置き、以下のコードを入力します。
Delphi:
MyList := TStringList.Create;
try
MyList.Add('Animals');
MyList.Add('Flowers');
MyList.Add('Cars');
MyList.Sort;
if MyList.Find('Flowers', Index) then
begin
ListBox1.Items.AddStrings(MyList);
Label1.Caption := 'Flowers has an index value of ' + IntToStr(Index);
end;
finally
MyList.Free;
end;
C++:
MyList = new TStringList();
try {
MyList->Add( "Animals" );
MyList->Add( "Flowers" );
MyList->Add( "Cars" );
MyList->Sort();
if( MyList->Find( "Flowers", Index ) {
ListBox1->Items->AddStrings( MyList );
Label1->Caption = "Flowers has an index of " +
IntToStr( Index );
}
} __finally {
MyList->Free();
}
メモ: Find が正しく動作するのはソート済みのリストの場合だけです。ソートされていないリストの場合には IndexOf を使用してください。
アプリケーションを実行するには:
- プロジェクト ファイルを保存します。その後、 [実行|実行]を選択して、アプリケーションをビルドおよび実行します。コントロールを持つフォームが表示されます。
- ボタンをクリックします。 文字列、'Animals'、'Cars'、'Flowers' が、ListBox のリスト内にアルファベット順に表示されます。 Label キャプションに、次のメッセージ文字列が表示されます:
- 'Flowers has an index value of 2'。