ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

ListBox で先頭に 0 を補完してソートする 

更新 : 2009/12/03

 



解説:
ListBox コンポーネントは代入されたアイテムをボックス内に一覧表示できます。ComboBox で隠れたアイテムをすべて表示させたような形です。MultiSelect プロパティを true にすると Ctrl や Shift と組み合わせて複数アイテムがセレクトできます。

使用例:
以下の例では、ListBox に入力されたアイテムをソーティングしています。
アイテムが 23、5 という順番で入力されていると正しくソートできません(プログラムによっては、この並びの方が都合が良い場合もあります)。今回は 0 を補完(0 のパディングも参考にしてください)して、05、23 と並ぶようにしています。

準備として ListBox と Button 2 つを適当に配置してください。
ListBox には 5 つのアイテムとして文字列 34、6、12、89、5 を入力しておきます。

Button1 をクリックすると 12、34、5、6、89 と並びます。次に Button2 をクリックしてみてください。 05、06、12、34、89 と並ぶはずです。

//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    ListBox1->Sorted = true;
}
//-------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    //ListBox のアイテムを調べ 1 桁ならば先頭に 0 を補完する
    for(int i = 0; i < ListBox1->Items->Count; i++){
        //文字列を数値に変換
        int target = StrToInt(ListBox1->Items->Strings[i]);
        //0 を補完(2 桁のみ対応)
        ListBox1->Items->Strings[i] = IntToStr(target / 10) + IntToStr(target % 10);
    }

    //リストボックス内を再ソート
    ListBox1->Sorted = false;
    ListBox1->Sorted = true;
}

//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.