像网页一样分框操作,我实现办法是
用TSplitter控件 
  在FORM上放两个listview,一个的ALIGN设为LEFT,另一个设为CLIENT,同时把SPLITTER放在它们之间就可以实现效果
左边框我读取test.txt文档局部内容,我要怎么样操作才能在右边的框和左边的链接呢?
比如
test.txt  内容为
2009-2-1 9:56:40        192.168.1.12            A               www.sina.com
2009-2-1 9:56:41        192.168.1.12            A               www.sina.com
2009-2-1 9:56:45        192.168.1.12            A               www.delphisearch.cn
2009-2-1 9:56:46        192.168.1.12            A               i3.sinaimg.cn
左边框为
www.sina.com
www.delphisearch.cn
i3.sinaimg.cn
当我点击左边框的www.sina.com项
右边框会显示
2009-2-1 9:56:40        192.168.1.12            A               www.sina.com
2009-2-1 9:56:41        192.168.1.12            A               www.sina.com
请教各位大大,我实在太菜啦,要怎么才能实现?麻烦帮指点下,不甚感激.不知道我想的分框方式对吗?

解决方案 »

  1.   

    这个问题和你之前的问题差不多,点击后,找到最后一个空格后的字符为www.sina.com的行,然后取出4列值添加到listview中就可以了
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls;
    type
      TRecRecord = record
        Date :String;
        IP : String;
        style:String;
        site : String;
      end;type
      TForm1 = class(TForm)
        ListView1: TListView;
        Button1: TButton;
        ListView2: TListView;
        procedure Button1Click(Sender: TObject);
        procedure ListView1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      vRec : array of  TRecRecord;
    implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      str,  TargetStr : TStringlist;
      list : TListItem;
      i ,J,K : Integer;
      tmpStr : String;begin
      str := TStringList.Create;
      TargetStr := TstringList.Create;
      try
        Str.LoadFromFile('C:\test.txt');
        setlength(vrec,str.Count );
        for i := 0 to str.Count -1 do
        begin
          TargetStr.Append(
            copy(str.Strings[i],
                 LastDelimiter(' ',trim(Str.Strings[i])),length(Str.Strings[i])));
          vRec[i].Date :=  trim(copy(str.Strings[i],0,pos('  ',str.Strings[i])));      tmpstr := trim(copy(trim(str.Strings[i]),pos('  ',trim(str.Strings[i])),length(str.Strings[i])));
          vRec[i].IP := trim(copy(tmpstr,0,pos('  ',tmpstr)));
          tmpstr := trim(copy(trim(tmpstr),pos('  ',trim(tmpstr)),length(tmpstr)));
          vrec[i].style := trim(copy(tmpstr,0,pos(' ',tmpstr)));      tmpstr := trim(copy(trim(tmpstr),pos('  ',trim(tmpstr)),length(tmpstr)));
          vrec[i].site  := tmpstr;
        end;
        str.Clear;    TargetStr.Sorted := True;
        TargetStr.Sort;
        for I := 0 to TargetStr.Count -1 do
        begin
          K := 1;
          for J := 0 to TargetStr.Count -1 do
          begin
            if i = J  then continue;
            if Trim(TargetStr.Strings[i]) = Trim(TargetStr.Strings[j]) then inc(k);
          end;       if str.IndexOf(TargetStr[i] +'  '+inttostr(k)) = -1 then
           begin
             str.Add(TargetStr[i] +'  '+inttostr(k));
             list := ListView1.Items.Add;
             list.Caption := TargetStr[i];
             list.SubItems.Text := Inttostr(k);
           end;    end;
      finally
        FreeAndNil(Str);
        FreeAndNil(TargetStr);
      end;
    end;procedure TForm1.ListView1Click(Sender: TObject);
    var
      i : integer;
      vList : TListItem;
    begin
      if ListView1.Selected <> nil then
      begin
        ListView2.Clear;
        for I := 0 to length(vRec) -1 do
        begin
          if trim(ListView1.Selected.Caption) = Trim(vrec[i].site)  then
          begin
            vList := ListView2.Items.Add;
            vList.Caption := vrec[i].Date;
            vList.SubItems.Add(vrec[i].IP);
            vList.SubItems.Add(Vrec[i].style);
            vList.SubItems.Add(vrec[i].site);
          end;
        end;
      end;
    end;end.