2010-11-14 43 views
2

可能會在運行時調用TImagelist編輯器來查看我的TImagelist的內容嗎?在運行時查看TImagelist的內容

+0

這是可能的,但侵入封裝ImageList組件編輯的努力是比實現自己的編輯器無法比擬的。 – 2010-11-15 19:14:48

回答

6

該編輯器是一個設計時編輯器,並且在運行時不可用,但您可以通過調用其Draw方法並指定要繪製的圖像的索引,在任何畫布上繪製ImageList中保存的任何圖像。下面的示例代碼繪製保存裏面ImageList1在Form1上的所有圖像在垂直列表:

var 
    i : Integer; 
begin 
    for i := 0 to ImageList1.Count-1 do 
    ImageList1.Draw(Form1.Canvas, 16, 16 + (i * ImageList1.Height),i,True); 
end; 
5

您可以將某些窗體上放置一個ListView,做這樣的事情:

var 
    i: Integer; 
    li: TListItem; 
begin 
    ListView1.LargeImages := ImageList1; 
    ListView1.Items.BeginUpdate; 
    try 
    for i := 0 to Pred(ImageList1.Count) do 
    begin 
     li := ListView1.Items.Add; 
     li.Caption := Format('Image %d', [i]); 
     li.ImageIndex := i; 
    end; 
    finally 
    ListView1.Items.EndUpdate; 
    end; 
end;