文字列を追加しソートする
この VCL アプリケーションの作成は以下の手順で行います。
- ボタン、ラベル、TListBox の各コントロールを持つ VCL フォームを作成します。
- 文字列を追加してソートするコードを記述します。
- アプリケーションを実行します。
ボタン、ラベル、リスト ボックスの各コントロールを持つ VCL フォームを作成するには:
- [ファイル|新規作成|その他...] の[Delphi プロジェクト]または[C++Builder プロジェクト]を選択し、[VCL フォーム アプリケーション]アイコンをダブルクリックします。VCL フォーム デザイナが表示されます。
- [ツール パレット]の[Standard]カテゴリから、TButton、TLabel、TListBox の各コンポーネントをフォームに配置します。
ストリームをコピーする手続きを記述するには:
- フォームで Button1 を選択します。
- [オブジェクト インスペクタ]で、[イベント]タブの OnClick アクションをダブルクリックします。コード エディタが開き、TForm1.Button1Click イベント ハンドラ ブロックにカーソルが置かれます。
- Delphi の場合は、カーソルを予約語 begin の前に置き、Enter キーを押します。これで、コード ブロックの前に新しい行が作成されます。
- 以下の変数宣言を入力します。
var MyList: TStringList; Index: Integer;
TStringList *MyList; int Index;
- コード ブロック内にカーソルを置き、以下のコードを入力します。
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;
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' という文字列がアルファベット順に表示されます。ラベルのキャプションには、次のメッセージ文字列が表示されます。
'Flowers has an index value of 2.'