|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"[D3]ListViewとImageListをつなげる"
{
Button1を押してBMP画像をいくつか読み込み、ListView内の画像を選択し
てButton2を押すとImage1にその画像が表示されます。
フォーム上にImageList, ListView, Button2個, Image2個, OpenDialog を
置いてください。
(Image2はバッファとして使用しています。visible:=Falseにしてください。
しなくてもいいけど。)
}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
ExtCtrls, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
ImageList1: TImageList;
OpenDialog1: TOpenDialog;
ListView1: TListView;
Button1: TButton;
Button2: TButton;
Image1: TImage;
Image2: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private 宣言 }
Icount: Integer;
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
itm: TListItem;
begin
ListView1.LargeImages:=ImageList1;
ListView1.SmallImages:=ImageList1;
OpenDialog1.Filter:='Bitmap files (*.BMP)|*.BMP|ALL files
(*.*)|*.*';
if OpenDialog1.execute then
begin
Image2.Picture.LoadFromFile(OpenDialog1.FileName);
Image1.Picture.Bitmap.Width:=60;
Image1.Picture.Bitmap.Height:=40;
Image1.Picture.Bitmap.canvas.stretchdraw(rect(0,0,60,40),Ima
ge2.Picture.Bitmap);
itm:=ListView1.Items.Add;
itm.Caption := ExtractFileName(OpenDialog1.FileName);
itm.ImageIndex:=ICount;
Inc(Icount);
ImageList1.add(Image1.Picture.Bitmap, nil);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
I: integer;
begin
with ListView1 do
begin
if (Items.Count>0) and (Selected<>nil) then
begin
I:=Selected.ImageIndex;
if I>ImageList1.Count then I:=0;
ImageList1.GetBitmap(I, Image1.Picture.Bitmap);
end;
end;
repaint;
end;
end.
自分でもよくわかってないところもあるんですが、動きます。
97/10/25(Sat) 09:21am GFB00315 じゅにゃ
Original document by じゅにゃ 氏 ID:(GFB00315)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|