我能否取出一张ImageList1里的一张图片并显示在FORM上?在按BOTTON事件触发的时候?(50分)

  • 主题发起人 主题发起人 blueearth
  • 开始时间 开始时间
B

blueearth

Unregistered / Unconfirmed
GUEST, unregistred user!
我能否取出一张ImageList1里的一张图片并显示在FORM上?在按BOTTON事件触发的时候?
还有TREEVIEW里如何插入一个带图片的节点?
 
可以的。
问题一:只要你引用到ImageList1内的某一张图片,找到其BMP等属性即可。
问题二:你可以事先给TreeView引入ImageList对象,我现在手头上没有Delphi的帮助
具体做法你查一下TreeView内的关于ImageList的多个属性介绍,应该能解决。
 
treeview的属性关联imagelist1。
然后在增加接点时 Node.imageindex:=0(表示imagelist1中第1个图片)
1(表示imagelist1中第2个图片)
....
 
我现在想做的是,一个FORM,左边放一个TREEVIEW,然后我现在在右边点击FORM就把
imagelist里的一张图片显示在鼠标点击的地方,然后在TREEVIEW里也显示相同的图片
各位有类似的例子吗?或者告诉我怎么显示IMAGELIST里图片在FORM上就可以了!
好像IMAGELIST里没有这样的属性吧?
 
vecm,你好
你能详细点介绍问题一:只要你引用到ImageList1内的某一张图片,找到其BMP等属性即可。
如何引用IMAGELIST里的一张图片?
能详细介绍第一个问题吗?
 
这样试试。Good Luck
procedure TForm1.Button1Click(Sender: TObject);
begin
ImageList1.Draw(form1.Canvas,0,0,1);//第一个参数是你要画的对象的Tcanvas;
//第二、三参数表示图像的左上点启始位置;
//第四个参数表示ImageList内图像的索引
end;

draw函数具体描述如下:

Draws the image specified by the Index parameter onto the provided Canvas.

procedure Draw(Canvas: TCanvas; X, Y, Index: Integer; Enabled: Boolean=True); overload;
procedure Draw(Canvas: TCanvas; X, Y, Index: Integer; ADrawingStyle: TDrawingStyle; AImageType: TImageType; Enabled: Boolean=True); overload;

Description

Use the Draw method to draw one of the images in the image list onto a specified canvas.

Canvas is the drawing surface on which to render the image.

X and Y specify the location where the top-left corner should appear on Canvas.

Index indicates which image to draw, where 0 specifies the first image, 1 specifies the second image, and so on.

ADrawingStyle indicates how the color of the image may be altered. If this parameter is not specified, Draw uses the value of the DrawingStyle property.

AImageType indicates whether to draw the image or its associated mask. If this parameter is not specified, Draw uses the value of the ImageType property.

Enabled indicates whether the image appears as a gray-mapped image. If Enabled is False, Draw renders a gray-mapped version of the image. Because Enabled has a default value of True, this parameter can be omitted if the image should not be grayed.
 
vecm,你好
再请教你个问题,我现在想做个画类似流程图的软件.我现在有两个iamgelist,
其中imagelist1关连左边的Treeview,imagelist2和imagelist1里顺序形状相同(大小不一样)的图片.
FORM左边是TREEVIEW右边是PANEL.现在要做的就是在右边的PANEL上点击后执行
1.在左边的TREEVIEW上创建一个子几点并显示IMAGELIST1里的序号1的图片通过下面(已经实现)
subnode1:=FlowTreeView.Items.AddChildObject(node1,Objname, nil);
subnode1.ImageIndex:=ImageList1;
subnode1.SelectedIndex:=ImageList1;
2.如何在点击的同时我也调用相同序号的IAMGELIST2里的图片显示在PANEL上
Image := TImage.Create(EditPanel);
Image.Parent := EditPanel;
Image.Picture.LoadFromFile('c:/bmp/active.bmp');
Image.show;
是可以的,现在如何把LoadFromFile('c:/bmp/active.bmp');用IMAGELIST2里的图片代替呢?
3,可以把TREEVIEW里的图片和PANEL上的图片关连起来码?就是我选中TREEVIEW里的一张的时候
PANEL上也选中和它同时创建的图片?
4在PANEL上创建的图片下面能否写上如TREEVIEW的CAPTION一样的字?
不知道我说清楚了没有?
 
vecm,我点击错了把分给别人了,如果你解答了我另外给你分数
 
vecm,
我QQ99664175能聊聊码?
 
将这句话Image.Picture.LoadFromFile('c:/bmp/active.bmp');替换为
imagelist2.Draw(image1.Canvas,0,0,1);//将【1】替换为你要画的图的索引号;
如果你希望图像沾满整个image1,那么可有两个办法
1:将imagelist2的图像尺寸设置为与image1等大;
2:将image1.Stretch:=true;

实在抱歉,唉,年纪大了,有二年不玩QQ了。现在机器上也没有装QQ。Good Luck。
 

Similar threads

D
回复
0
查看
787
DelphiTeacher的专栏
D
D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
657
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部