名前 題名 ▼ takiさん > ▼ Mr.XRAYさん > ▼ たてぐやさん > > こんな感じでプログラムできそうです。 > > http://mrxray.on.coocan.jp/Halbow/Notes/N023.html > [整数値を記憶させる]も参考にしました。 > > > procedure TForm1.Button7Click(Sender: TObject); > var > i,ix:integer; > s:string; > ItemCode,ItemName:string; > begin > > Randomize; > listBox1.Clear; // StringGrid役のデータとみなして下さい > listBox2.Clear; // クエリー役 本来はStringList > listBox2.Sorted := true; // 常にソートされる設定 > listBox3.Clear; // 結果の確認表示用 > > // データが100回追加される処理をしたことに > for i := 1 to 100 do begin > // 商品コード番号をランダムに発生 > ItemCode := FormatCurr('000000',Random(1000000)); > // 確認できるように名前の一部に組み込む > ItemName := 'Item' + FormatCurr('000',i) + '-A'; > > // listBox1の最後にデータが追加され、そのIndexがixに入る > ix := listBox1.Items.Add(ItemCode + ' ' + ItemName + ' @500円'); > > // クエリー役のlistBox2にKeyのコード番号とIndexのixを追加する > // 追加と同時にソートされる > listBox2.Items.AddObject(ItemCode,TObject(ix)); > end; > > // コード番号順にソートされたデータを取り出す > for i := 0 to ListBox2.Items.Count - 1 do begin > ix := integer(ListBox2.Items.Objects[i]); // Indexを取り出す > > s := ListBox1.Items.Strings[ix]; // StringGrid役からデータを取り出す > > // ここで商品コード毎の集計処理などをする > listBox3.Items.Append(s); // 確認のためにListBox3に書き出す > end; > > end; > > > 実行結果です。 > > ListBox1は商品コードはランダムです。ListBox2が昇順にソートされています。 > ListBox3はListBox2と同じ並びになっているのがわかります。 > ハイライトは同じデータです。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link