|
|
||||
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; } //------------------------------------------------------------------- |