お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
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