BorlandC++Builder6でListBoxにフォルダの画像を表示する方法

このQ&Aのポイント
  • BorlandC++Builder6を使用しています。ListBoxにフォルダの中身を読み込み表示させています。
  • フォルダ内の画像の名前は自動的にpic0.jpg、pic1.jpgとなるようにしています。
  • ListBoxに画像を追加する際に、昇順に並び替える方法を知りたいです。
回答を見る
  • ベストアンサー

ListBox

BorlandC++Builder6を使用しています。 ListBoxにフォルダの中身を読み込み表示させています。 (画像データのみ読み込むようにしています) フォルダ内の画像の名前は自動的に pic0.jpg pic1.jpg … となるようにしています。 そこで,0から順にListBoxに追加していきたいのですが, どうしてもpic1.jpgの次がpic10.jpgになります。 (pic19.jpgの次にやっとpic2.jpgが追加される) 1,2,3,と昇順に並び替えるにはどのようにしたらよいでしょうか。 ListBoxのプロパティのSortedをtrueにしてもできませんでした。

noname#78422
noname#78422

質問者が選んだベストアンサー

  • ベストアンサー
  • chain-saw
  • ベストアンサー率47% (35/73)
回答No.1

ファイルの名前をpic00.jpg、pic01.jpgという形ではまずいでしょうか?

noname#78422
質問者

お礼

できましたっ!!! 単純なことだったんですね。。 本当にありがとうございました<(_ _)>

関連するQ&A

  • VB6 2つのListBoxをソート

    VB6で約3000のデータをListBoxに入れて有ります。 ListBox1=ファイル名 ListBox2=ファイルアドレス と2つに分けてListBoxに入れて有り、このインデックス値は双方常に一緒でなければなりません。 ここで困ってしまったのが、Sortedはどうすれば良いのか?です。 片方ソートでも両方ソートでも順番(インデックス値)がばらばらになってしまいます。 そこで下記方法でListBoxを更に3つ追加して(1つをSorted)1つ1つソートしたインデックス順に並び替えたらソートに時間がかかってしまいました。 何か良い方法は無いでしょうか? (ListViewは経験が無いためこの方法の場合はやり方又は参考サイトを入れて頂けると助かります) Dim i As Integer Dim j As Integer Dim k As Integer k = LI1.ListCount - 1 For i = 0 To k LI3.AddItem LI1.List(i) LI4.AddItem LI2.List(i) LI5.AddItem LI1.List(i) 'SortedのListBox Next i LI1.Clear LI2.Clear For i = 0 To k For j = 0 To k If LI3.List(j) = LI5.List(i) Then LI1.AddItem LI3.List(j) LI2.AddItem LI4.List(j) Exit For End If Next j Next i LI3.Clear LI4.Clear LI5.Clear '(LI = ListBox)

  • C# listbox

    どうしても解らないのでご教授お願いたします. やりたいことは単純なのですが,リストボックスにドラックドロップしたときに表示する フォント(文字の色とサイズ)を変更したいのですが,下記のプログラムではドラッグドロップ するとリストが真っ白になってしまいます.いろいろ調べたのですが何が原因が解りません. 何卒よろしくお願いいたします. private void listBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { listBox1.Items.Clear(); listBox1.DrawMode = DrawMode.OwnerDrawVariable; //コントロール内にドロップされたとき実行される //ドロップされたすべてのファイル名を取得する string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop, false); //ListBoxに追加する listBox1.Items.AddRange(fileName); listBox1.Sorted = true; } private void listBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { //コントロール内にドラッグされたとき実行される if (e.Data.GetDataPresent(DataFormats.FileDrop)) { //ドラッグされたデータ形式を調べ、ファイルのときはコピーとする e.Effect = DragDropEffects.Copy; } else { //ファイル以外は受け付けない e.Effect = DragDropEffects.None; } } //DrawItemイベントハンドラ //項目を描画する private void ListBox1_DrawItem(object sender,System.Windows.Forms.DrawItemEventArgs e) { //背景を描画する Font cfont = new Font("MS P明朝", 9, FontStyle.Bold); //適切な色で背景を描画する。 e.DrawBackground(); Rectangle rec = e.Bounds; Graphics g = e.Graphics; Color col = Color.Black; Font deffont = e.Font; deffont = cfont; string txt = ((ListBox)sender).Items[e.Index].ToString(); TextRenderer.DrawText(g, txt, deffont, rec, col, TextFormatFlags.Default); }

  • listBoxとTimerについて C#

    listBoxとTimerについて C# ヤフーニュースのURLをlistboxへ入れます。 そしてlistBox1の中身を画面表示させたら、次にlistBox2の中身も表示したいと思っています。 最初listBoxが1つだったときはうまく行っていたのですが、listBoxを増やすとうまく行かなくなりました。 この状態だと、listBox2の中身だけ表示させて終わってしまいます。 Timerの使い方が怪しいと思うのですが、どうでしょうか? 些細なことでも何でもいいのでご意見頂ければ助かります。 -----以下コード抜粋------ public partial class Form1 : Form { public Form1() { InitializeComponent(); } int urlindex = 0; private void Form1_Load(object sender, EventArgs e) { listBox1.AllowDrop = true; listBox1.DragEnter += new DragEventHandler(listBox1_DragEnter); listBox1.DragDrop += new DragEventHandler(listBox1_DragDrop); listBox2.AllowDrop = true; listBox2.DragEnter += new DragEventHandler(listBox2_DragEnter); listBox2.DragDrop += new DragEventHandler(listBox2_DragDrop); } private void listBox1_DragEnter(object sender, DragEventArgs e) { //URLのみ受け入れる//@ITより if (e.Data.GetDataPresent("UniformResourceLocator")) e.Effect = DragDropEffects.Link; else e.Effect = DragDropEffects.None; } private void listBox2_DragEnter(object sender, DragEventArgs e) { //URLのみ受け入れる//@ITより if (e.Data.GetDataPresent("UniformResourceLocator")) e.Effect = DragDropEffects.Link; else e.Effect = DragDropEffects.None; } private void listBox1_DragDrop(object sender, DragEventArgs e) { //ドロップされたリンクのURLを取得する//@ITより string url = e.Data.GetData(DataFormats.Text).ToString(); //結果を表示 listBox1.Text = url; //MessageBox.Show(url); //ドロップされたデータがstring型か調べる if (e.Data.GetDataPresent(typeof(string))) { ListBox target = (ListBox)sender; //ドロップされたデータ(string型)を取得 string itemText = (string)e.Data.GetData(typeof(string)); //ドロップされたデータをリストボックスに追加する target.Items.Add(url); //MessageBox.Show("表示"); } } private void listBox2_DragDrop(object sender, DragEventArgs e) { //ドロップされたリンクのURLを取得する//@ITより string url = e.Data.GetData(DataFormats.Text).ToString(); //結果を表示 listBox2.Text = url; //MessageBox.Show(url); //ドロップされたデータがstring型か調べる if (e.Data.GetDataPresent(typeof(string))) { ListBox target = (ListBox)sender; string itemText = (string)e.Data.GetData(typeof(string)); target.Items.Add(url); } } private void goButton_Click(object sender, EventArgs e) { urlindex = 0; timer1.Start(); timer2.Start(); } private void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); if (listBox1.Items.Count != 0 && urlindex < listBox1.Items.Count) { string url = (string)listBox1.Items[urlindex]; webBrowser1.Navigate(url); urlindex++; } } private void timer2_Tick_1(object sender, EventArgs e) { timer2.Stop(); if (listBox2.Items.Count != 0 && urlindex < listBox2.Items.Count) { string url = (string)listBox2.Items[urlindex]; } } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { timer1.Start(); timer2.Start(); } private void listBox2_SelectedIndexChanged(object sender, EventArgs e) { }

  • 【WPF】【C#】【XAML】LISTBOX

    WPFのListBoxについて1から勉強をしているものです。 ・項目 削除(CheckBox),ID(TextBlock),カテゴリ(TextBlock),画像(BitmapImage)を一行とするリストを追加、編集、削除できる。 ・ID、カテゴリにそれぞれボタン機能を有し、押下することにより各項目に対してソート(昇順⇔降順)できる。 ・追加ボタン⇒追加画面を起動し各項目を入力しリストに行を追加する。 ・編集ボタン⇒選択中のリストに対して別で編集画面を表示させ選択中のリストの編集を行える。 ・削除のチェックがついている行を全て削除する。 このような仕様の画面を作っています。 現在、追加画面からの行の追加はできるようになりました。 しかし残り仕様を満たす解決策が分からず ネットで調べたところ単一項目のケースでの編集、削除、ソートはよく見かけるのですが。 今回の様にリストに複数項目がある状態からの編集、削除、ソートの事例が見つからず困っています。 ListBoxでやる必要ないのでは?と思われる方もいらっしゃると思いますが。 お聞きしたいことというのは、 ListBoxで選択行のテキストブロックの情報を取れるのかどうか。 ListBoxで削除(CheckBox)がついている行を特定できるのかどうか。 ListBoxで特定の項目に対するソートができるのかどうか。 以上の3点になります。 ■使用ツール Microsoft Visual Studio 2010 ■使用テンプレート WPFアプリケーション Visual C# その他、不足な情報等ございましたらなんなりと申しつけ下さい。 皆様のお知恵を参考にさせていただけたらと思っております。 よろしくお願いいたします。

  • VB2015 ListBoxの二次元配列を呼出す

    始めまして。 趣味でVBソフトを作りたいと奮闘中です。 ExcelVBAやC#の簡単ソフトを作った経験があります。 パソコン環境は、W10x64、VB2015です。 ListBoxに2次元配列で下記のように書き込み、選択した行の右側のデータ(欄2)を他のTextBoxに表示させたいのです。 下のデータを2次元配列にして読み込ませる方法と、選択した行の欄2のデータを取り込む方法を教えて頂けると嬉しいです。ListBoxのプロパティのMultiColumnはTrueにしてあります。  欄1 欄2 北海道  550 青森県  138 宮城県  230 東京都  1360 現在は次のようにしてなんとか逃げておりますが、2次元配列でスマートに出来れば嬉しいです。 書き込み ListBox1.BeginUpdate() ListBox1.Items.Add("北海道 , 550") ListBox1.Items.Add("青森県 , 138") ListBox1.Items.Add("宮城県 , 230") ListBox1.Items.Add("東京都 , 1360") ListBox1.EndUpdate() 呼び出し Dim textArray = ListBox1.SelectedItem.ToString.Split(",")  Dim Jinko As Single = Single.Parse(textArray(1)) TextBox.Text = Jinko 宜しくお願い致します。 熊谷

  • ListBoxを数字Keyで選択したい

    お世話になります。 OSはWin XP Home、Excel2002を使用しています。 EXCELのsheet1にCommandButton1とListBox1を貼り付けて以下のようにコーディングしています。 'Listbox1表示 Private Sub CommandButton1_Click() ListBox1.Visible = True End Sub '使用者はリストボックスのダブルクリックでリストボックスの入力ができる。 Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) ListBoxDataSet End Sub '使用者はリストボックスでマウスで選択後EnterKeyで入力ができる。 Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = vbKeyReturn Then ListBoxDataSet KeyAscii = 0 '←これがないとなぜかEXCELが異常終了するので注意! End If End Sub 'リストボックスで選択したリストを、シートの選択セル(単一)に転記し、 'その後でリストボックスを非表示 Sub ListBoxDataSet() ActiveCell.Value = ListBox1.Text ListBox1.Visible = False End Sub さらにListBox1のプロパティのListFillRangeはA1:B100としており、A列は1から100の連番、B列は上から順に「中山」、「常盤」、「高島」・・・98番目には「吉岡」という名前があります。 現在A列の数字は表示以外の機能は持っておらず、ダブルクリックか、マウスで1クリックで項目選択をした後にEnterKeyで名前だけがActivecellに転記されるようになっています。 100件もの項目をひとつのリストボックスには表示しきれず、スクロールバーで探すのも大変なので、例えば数字Keyで1と打てばすぐに「中山」が選択され、さらにEnterKeyで転送される、98と打てば「吉岡」が選択され・・・という風に機能追加したいのです。 いろいろ調べましたが、方法が分かりませんでした。 よろしくお願いします。

  • windows7 フォルダ検索 

    windows7を利用しています。 フォルダ検索について教えて下さい。 pic-Aというフォルダがあるとします。 pic-Aフォルダの中にa1,a2というフォルダがあるとします。 フォルダ検索で、pic-Aと入力して実行すると、 pic-Aの中身のa1,a2が表示されてpic-Aというフォルダが 表示されません。 pic-Aというフォルダを表示させたいのに、pic-Aの中身が表示されてしまいます。 画像ファイルが非常に膨大にあり、フォルダの名前も似通っているので、 (名前の付け方やフォルダの整理の仕方がまずい自分が悪いのですが・・・) 非常に分かり辛いです。 フォルダ検索をすると、フォルダの中身ではなく検索したフォルダが表示される ようにするには、どうすれば良いでしょうか? 以上、ご回答よろしくお願い致します。

  • Win7、ファイル検索で表示されない

    Win7を利用しています あるデスクトップにあるフォルダー(a)に画像が160,000件程度入っています この中に特定のファイルがあるかどうか検索したいと思っています 例えば、「00000047.JPG」のファイルがあるかどうか検索したいと思い スタートボタンを押下後、「プログラムとファイルの検索」に該当の「00000047.JPG」 を入れて検索してもaフォルダーに該当ファイルがあると表示されません しかし、同じファイル名の画像ファイルをデスクトップに作成し、aフォルダーに コピーしようとすると、該当ファイルがあると表示されます つまり、Win7の検索機能で、該当ファイルの検索ができません。 何故でしょうか また、エクスプローラを利用してaフォルダーの中身を該当ファイルをみようとして、 名前の昇順にしてみているのですが 最初にくるのが、000000A0.JPG、000000A1.JPG・・・となって、それよりも前に表示される べきと思われる、00000047.JPGが表示されません。 名前の昇順なら、00000047.JPG、000000A0.JPG・・・と表示されるりでないかと思うのですが・・・ 何か検索の時の設定等があるのでしょうか?

  • IE7でのお気に入りフォルダーの並び順

    IE7で、お気に入りの追加をする際、表示されるフォルダーの並び順が名前順でないので、探すのが大変。アルファベット及び半角のカナは昇順に並んでいるが、漢字名のフォルダーが何順で並んでいるのかわからない(少なくとも、お気に入りを呼び出す時のフォルダーの並び順とは違う)。

  • フォルダ内にあるファイルの連番リネーム。

    フォルダ内に決まった数(8枚)のJPG画像が入っていて、その8枚づつ画像の入ったフォルダがたくさんあります。 そのフォルダ内のJPG画像のファイル名はそれぞれ全て違うのですが、フォルダ内にある8枚のJPG画像を全て01.jpg~08.jpgに連番リネームしたいと思っています。 今まではエクスプローラー風フォルダツリーから1個1個フォルダを開けて、中身のJPG画像を全選択して連番にリネームという風にやっていましたが(Namery使用)、例えば中身を変更したいフォルダをD&Dしたらフォルダごとに8枚づつ連番を自動でつけてくれるようなソフト、またはそのような作業が可能なソフトがありましたら教えて下さい。 いくつか試してみましたが期待した結果は得られませんでした、よろしくお願いします。