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を指定できません。
分かる方居りましたら教えて下さい。
長文失礼しました。
ImageListは非ビジュアルコンポなので、ファイルパスを格納したいのならば
別にImageListを使う必要はないんじゃないかな?
文字配列か StringListにファイルパスを格納しておけばいいと思うよ。
「ファイルパス」じゃなくて「フォルダパス」参照でということなら、
FindFirst、FindNext関数でそのフォルダ内の画像ファイルを列挙して、
そのパスをStringListに格納だね。
Jpg画像ファイルをImageコンポに表示するのなら、
TJPEGImage(Jpg).LoadFromFile(ファイルパス)で読み込んでから、Image1.Picture.Assign(Jpg);
つまり、ImageListは使わない。
そうねぇさん、ほそくさん、回答ありがとうございます。
フォルダパスではなく、ファイルパスのミスでした。
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だけでなんとかなりそうなので、動作もだいぶ軽くなりそうです。
ありがとうございました。
ツイート | ![]() |