ImageListでフォルダパスを参照して画像を表示するには?

解決


River  2008-05-29 20:02:25  No: 30825

ImageListに関して2つ質問があります。

1.
画像ファイルを大量に扱いたいのでImagelistを使えばいいのだろうと思ったのですが、
bmpファイルの数が非常に多くなり、プログラムの実行が非常に重くなっています。
何か策は無いかと探していたところ、くだすれという所に

610 :デフォルトの名無しさん:2008/02/18(月) 23:10:51 
>>604 
> 複数の画像を読み込んでスライドショーの用な形式で表示させようと思ってます 
> jpgファイルはImageListでは扱えないのでしょうか? 
画像全部読み込むつもりか?それだけ重くなんだぞ 
ファイルパスだけにしておけ 

という書き込みを発見しました。ImageListはフォルダパス指定で使用できるのですか?
可能ならその方法を教えて下さい。

2.
上記と同じくだすれ内にて、ImageListでjpgを扱うにはTJPEGImageを使えばいいとありました。
ただ、
http://www39.atwiki.jp/kgh07155/pages/17.html#id_099735e5
を参考に、USER節にJPEGを追加したのですが、ImageListをダブルクリックしてから選択できる画像にJPEGを指定できません。
分かる方居りましたら教えて下さい。

長文失礼しました。


そうねぇ  2008-05-29 20:13:47  No: 30826

ImageListは非ビジュアルコンポなので、ファイルパスを格納したいのならば
別にImageListを使う必要はないんじゃないかな?
文字配列か StringListにファイルパスを格納しておけばいいと思うよ。


ほそく  2008-05-30 05:50:16  No: 30827

「ファイルパス」じゃなくて「フォルダパス」参照でということなら、
FindFirst、FindNext関数でそのフォルダ内の画像ファイルを列挙して、
そのパスをStringListに格納だね。
Jpg画像ファイルをImageコンポに表示するのなら、
TJPEGImage(Jpg).LoadFromFile(ファイルパス)で読み込んでから、Image1.Picture.Assign(Jpg);
つまり、ImageListは使わない。


River  2008-05-30 23:25:32  No: 30828

そうねぇさん、ほそくさん、回答ありがとうございます。
フォルダパスではなく、ファイルパスのミスでした。

http://seoi.net/delphi/func_fngetfilepathlist.shtml
ここを参考に、というか丸々コピーして、

procedure TForm1.Button1Click(Sender: TObject);
    var strItem: string;
        i: integer;
begin
  for i := 0 to 500 do
  begin
    strItem:=fnGetFilePathListByFolderPath('C:\Pict',false,1).Strings[i];
    ListBox1.Items.Add(strItem);
  end
end;

で、ファイル名一覧をリストボックスへ取得ができました。
ImageListを使わずにImageだけでなんとかなりそうなので、動作もだいぶ軽くなりそうです。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加