var
Items : TStrings;
然后
Items := TStringList.Create;
然后
Items. 
点完点后不是应该有属性什么的一个窗口吗?为什么这个没有,
谢谢回复,

解决方案 »

  1.   

    应该会有吧
    不过TStrings是抽象类,你要强转一下,TStringList(Items).
      

  2.   

    怎么没有??  你IDE出错了把?没装 CNPACK? 至于你有没有 我反正是有的
      

  3.   

    有的时候需要编译一次,然后就会出现了。
    还有就是你的coadsight的时间有可能设置的比较长。
      

  4.   

    LZ是delphi几?6,7的时候遇到过这个问题,不是tstring的问题,而是delphi该打补丁了
      

  5.   

    把你那个单元的所有代码复制、粘贴到记事本(此方法仅适合xp、win2000、win2003版本),看看有没有一些像“■”这样的黑色的小方块,如果有就删除它们,复制、覆盖你的单元的原有代码。原因:单元中有语句是在QQ聊天室或网页复制过来,使得回行控制符#13#10($0D$0A)缺失了#10($0A)而造成,其明显的症状是编译后,由有此情况的语句起,断点标志栏的蓝点错位。想模拟此情况也很容易,新建一个工程、双击工程中的窗体、把它产生的两行语句:procedure TForm1.FormCreate(Sender: TObject);
    beginend;剪切、粘贴到QQ聊天室的发言栏(不用发送),再剪切、粘贴回delphi的代码编辑器,便可以发现在begin与end之间输入的对象,不能点出任何东西来了。
      

  6.   

    出错提示是:  [Warning] Unit5.pas(43): Variable 'Items' might not have been initialized
      [Pascal Error] Unit5.pas(1): Unable to invoke Code Completion due to errors in source code
      

  7.   

    [Warning] Unit5.pas(43): Variable 'Items' might not have been initialized
    可能没有Items := TStringList.Create;语句就使用Items,或这建立的语句放在try、if等语句里了,因而引起的警告。[Pascal Error] Unit5.pas(1): Unable to invoke Code Completion due to errors in source code双击这里,看系统定位到哪条语句?
      

  8.   

    procedure TForm5.Button1Click(Sender: TObject);
    var
      i : integer;
      t : Cardinal;
      Items : TStrings;
    begin
      try
        t := GetTickCount();
        if Trim(Edit1.Text)='' then
        begin
          Memo1.Text :='无效的查询';
          Exit;
        end;
        Memo1.Lines.Clear();
        Memo1.Text :='正在查询请稍候...';
        Application.ProcessMessages();
        Items := TStringList.Create;
        Items.LoadFromFile(form8.Edit1.Text);
        for i := Items.Count - 1 downto 0 do
        begin
          if Pos(edit1.text,Items.Strings[i])<=0 then
            Items.Delete(i);
          Application.ProcessMessages();
        end;
        memo1.Lines.Assign(Items);
        memo1.Lines.Add('');
        memo1.Lines.Add('查到:'+inttostr(Items.Count)+'处,   '
                        + '耗时:'+floattostr((GetTickCount -t) / 1000.000)+'秒');
        Items.Free;
      except
        if Assigned(Items) then  Items.Free;
        memo1.Lines.Add('查找出错');
      end; //try;end;
      

  9.   

    是这样的,为什么出错呢?
    [Warning] Unit5.pas(43): Variable 'Items' might not have been initialized
      

  10.   

    改为:
    procedure TForm5.Button1Click(Sender: TObject);
    var
      i : integer;
      t : Cardinal;
      Items : TStrings;
    begin
      t := GetTickCount();
      if Trim(Edit1.Text)='' then
      begin
        Memo1.Text :='无效的查询';
        Exit;
      end;
      Memo1.Lines.Clear();
      Memo1.Text :='正在查询请稍候...';
      Application.ProcessMessages();
      Items := TStringList.Create;
      try
        Items.LoadFromFile(form8.Edit1.Text);
        for i := Items.Count - 1 downto 0 do
        begin
          if Pos(edit1.text,Items.Strings[i])<=0 then
            Items.Delete(i);
          Application.ProcessMessages();
        end;
        memo1.Lines.Assign(Items);
        memo1.Lines.Add('');
        memo1.Lines.Add('查到:'+inttostr(Items.Count)+'处, '
          + '耗时:'+floattostr((GetTickCount -t) / 1000.000)+'秒');
        Items.Free;
      except
        if Assigned(Items) then Items.Free;
        memo1.Lines.Add('查找出错');
      end; //try;
    end;
      

  11.   

    这不是出错,仅是警告,“[Pascal Error]”这样的提示才是出错。
      

  12.   

    试想想,当你原来的代码:
    try
      t := GetTickCount();//假设运行到这一个句子出了错,因为是在try内,它必然要跳到except
    后面执行,在except后面“if Assigned(Items) then ”这里访问到Items对象,所以,系统认为它还没建立就使用了,给你提出警告!
      

  13.   

    从这个例子,你就应该明白,凡是动态建立对象的语句,不要放在try语句内,若放在if...then begin...end内,而释放它的语句在这判断语句外,同样会引起系统不满、给你发出警告。
      

  14.   

    按ctrl+空格 会提示的,前提是要将原来输入法切换的快捷键换了
      

  15.   

    很多原因,可能是你上面的代码有错误的地方,你也不应该直接创建 TStrings,你应该使用TStringList也可能是你的输入法影响的原因,也可能是你的D让破坏了,还可能是你的按键坏了。
      

  16.   


    +1应该把
    Items : TStrings;
    定义成
    Items : TStringList;
    这样吧。你再试试
      

  17.   

    d7前一阵也遇到过,连着几天都没有这种提示了,编译都正常的,连单步调试时变量值的提示也不出现了
    后来又好了估计是ide的问题,但是无从下手就像:在ide里运行几次后,再编译运行就报错。。必须关闭d7再启动d7才行
    无提示的问题出现的比较少,这个问题困扰了很多不过,刚才为了试验,却运行了n次也没出现。。上午还几乎每运行2次必须关闭
      

  18.   

    总算遇到报错了(这次想看到它的错误信息,却怎么也不出现了,等了这么久才出现):
    Exception:
    ------------------------------------------------------------------------------------------------------------
      2.1 Date          : Wed, 28 Sep 2011 17:32:29 +0800
      2.2 Address       : 0083ACF0
      2.3 Module Name   : vcl70.bpl - (Borland Component Package)
      2.4 Module Version: 7.0.8.1
      2.5 Type          : EAccessViolation
      2.6 Message       : Access violation at address 0083ACF0 in module 'vcl70.bpl'. Write of address 00000018.
      2.7 ID            : 4D39
      2.8 Count         : 1
      2.9 Status        : New
      2.10 Note         :