uses Unit2;form2.caption := newValue;

解决方案 »

  1.   

    不行的,要出错的。我是把listview1的item.caption给form2.caption,
    procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    form2.caption:=item.caption;
    运行可以,但关闭程序老是要报错!
      

  2.   

    在Form2.OnShow中加代码:
       Caption:=Form1.Listview1.SelectedItem.Caption;
      

  3.   

    这么做是不会出错,但是如果我选择listview1的另一个item,form2的caption不会跟着变啊。
      

  4.   

    要求是选择listview1的另一个item的时候,在form2不关闭的情况下,form2的caption要动态的改变
      

  5.   

    我用你说的方法试了一下,确实有问题,你可以自定义一个消息,在ListView1SelectItem中向form2发消息,在form2中处理此消息,我下班了,程序没来的及写,你试试吧
      

  6.   

    procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    if assigned(form2) then
      form2.caption:=item.caption;
      

  7.   

    没有那么麻烦吧!!
    你可以先将要显示Caption的窗体的标题栏去掉!!!(也就是无边框窗体)。
    然后,欺骗系统自定义标题栏(也就是拦截系统消息),赋与它与真实标题栏一样的功能,
    这样,你就可以随意改变它了。
    只须在传过去以后,使Canvas重Paint一次而已,很简单的。
      

  8.   

    经过几次试验我找到了解决办法:定义一个全局变量,什么类型你可以自己定,假设是var flag:integer=0;在form2.show的同时设flag:=1;listview1的onSelectItem这样写:
    if (flag=1)and(item<>nil) then
    form2.Caption:=item.Caption;在form1的onCloseQuery中将flag改为0:  flag:=0;
    这样就没有问题了。
    这个问题可能是在form2关闭后,form1关闭过程中触发了listview1的onSelectItem事件,具体没研究过,但以上做法可以行的通。
    验证通过了,别忘了给我加分!!
      

  9.   

    出错的原因是因为窗体关闭时还触发了 Listview1.OnSelectItem 事件,解决方法:procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Listview1.OnSelectItem:=nil;
    end;
      

  10.   

    前面的朋友谢谢你们的帮助,可能是我笨,所以你们的回答我没成功。但是一样要好好谢谢您!由于wind99的认真,我给分(虽然方法看起来复杂了点):)。apollo47也有分