我想在listview中画线,(用于连接两个listview中的结点,结点是用一个小图片来显示的)但有一个问题就是画好线以后,我打开其他的窗口,关闭窗口后,被窗口盖住的线,就消失拉,我就是想问,怎样在关闭窗口后,所画的线还在。(在listview中我还画了背景,这个与画线不会有什么冲突吧。)
主要代码:
procedure TForm1.Button1Click(Sender: TObject);//生成listview的结点
var
listitem:Tlistitem;
position:Tpoint;
i:integer;
begin
for i:=0 to 6 do
begin
position.X:=20+i*100;
position.Y:=20+i*100;
with Form1.ListView1 do
begin
ListItem := Items.Add;
ListItem.Caption :='hxg';
listitem.SetPosition(position);
listitem.ImageIndex:=0;
end;
end;procedure TForm1.draw_line_2;//画线
var i:integer;
begin
for i:=0 to listview1.Items.Count-2 do
begin
listview1.Canvas.moveto (listview1.Items.Item[i].Left,listview1.Items.Item[i].top);
listview1.Canvas.lineto (listview1.Items.Item[i+1].Left,listview1.Items.Item[i+1].top);
end;
end;
end;
还有一个问题,我让listview中的结点可以拖动,拖动后让与它有关的线也跟着走,这又怎么做呢?
主要代码:
procedure TForm1.Button1Click(Sender: TObject);//生成listview的结点
var
listitem:Tlistitem;
position:Tpoint;
i:integer;
begin
for i:=0 to 6 do
begin
position.X:=20+i*100;
position.Y:=20+i*100;
with Form1.ListView1 do
begin
ListItem := Items.Add;
ListItem.Caption :='hxg';
listitem.SetPosition(position);
listitem.ImageIndex:=0;
end;
end;procedure TForm1.draw_line_2;//画线
var i:integer;
begin
for i:=0 to listview1.Items.Count-2 do
begin
listview1.Canvas.moveto (listview1.Items.Item[i].Left,listview1.Items.Item[i].top);
listview1.Canvas.lineto (listview1.Items.Item[i+1].Left,listview1.Items.Item[i+1].top);
end;
end;
end;
还有一个问题,我让listview中的结点可以拖动,拖动后让与它有关的线也跟着走,这又怎么做呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货