首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

panel上的鼠标事件!(急),该如何解决

2012-02-19 
panel上的鼠标事件!!(急)我搞不清楚那里错了,可运行后就出错!!帮帮修改一下!!!procedure TForm1.Panel1Cli

panel上的鼠标事件!!(急)
我搞不清楚那里错了,可运行后就出错!!帮帮修改一下!!!
procedure TForm1.Panel1Click(Sender: TObject);
var
pi:integer;
icoun,iid:integer;

begin
  icoun:=strtoint(rightstr(tpanel(sender).Name,1));
  for pi:=1 to panel1.ControlCount-1 do
  begin
  if panel1.Controls[pi].ClassName='TPanel'then
  begin
  iid:=strtoint(rightstr(tpanel(sender).Name,1));
  label1.Caption:=Tpanel(sender).ClassName+tpanel(sender).Name;
  plw:='listview'+inttostr(iid);
  pplw:=tlistview(plw);
  label2.Caption:=pplw.Name;//运行到这里出错!!
  end;
  end;

end;


[解决办法]
plw := 'listview ' + inttostr(iid); 
pplw := tlistview(plw); 
只能这个代码写得有创意。。。
plw是string类型,实际上string和TListView类型都是指针,所以可以编译器让pplw := tlistview(plw);通过了
但并不表示,编译后就会智能的判断出字符串所代表的实例
不过让是pplw指向了plw的地址,而这个地址中存放的内容并不时ListView的实例,当访问的时候会出现异常。

Delphi(Pascal) code
TComponent(pplw) := FindComponent(Format('ListView%d', [iid]));if Assigned(pplw) then  Label2.Caption := pplw.Nameelse Label2.Caption := 'NULL'; 

热点排行